闽高校计算机二级C语言模拟题.docx
《闽高校计算机二级C语言模拟题.docx》由会员分享,可在线阅读,更多相关《闽高校计算机二级C语言模拟题.docx(59页珍藏版)》请在冰豆网上搜索。
闽高校计算机二级C语言模拟题
一、选择题
(一)概述
1.(A)为正确变量名
A)pro_5B)caseC)5_proD)else
2.(C)为正确的用户标识符。
A)min-5B)3_rowC)max_atD)union
3.下面叙述正确的是(C)
A)程序中必需包含自定义函数
B)main()函数必须位于源程序文件的开头
C)所有语句都必须以分号“;”结束
D)每行最多只能写两个语句
4.下面叙述错误的是(A)
A)注释说明部分只能位于C源程序的最前面
B)C源程序必须包含一个main()函数
C)C源程序可由一个或多个函数组成
D)一个C源程序的执行是从main()函数开始,直到main()函数结束
(二)语法基础
5.下面叙述错误的是(C)
A)算术运算符中不包含“=”运算符
B)模运算符“%”是C语言基本的算术运算符
C)算术运算符只有“*”,“/”优先级高于关系运算符
D)自增和自减运算符只能用于变量,而不能用于常量或表达式
6.下面叙述中正确的是(B)
A)(3+9)++是正确的表达式
B)C语言中的整型与字符型变量混合运算的结果是整型
C)模运算符“%”两边运算数的数据类型是任意的
D)“abc”+“xxx”是正确的表达式
7.若有定义:
inti=3,j=6;则表达式(--i)*(j++)的值为(A)。
A)12B)10C)18D)15
8.若有定义:
floatx=3.5,y=5.5;则表达式(B)的值为2.
A)(x+y)%7B)(int)(x+y)%7
C)(int)x+y%7D)int(x+y)%7
9若有定义intx=1,y=2,n=3;则(B)为正确表达式
A)x=nyB)x=y*3,y=(x+n)/y
C)(x+y)(y+n)D)float(y/n)
10若有定义:
inta,且表达式!
a的值为0,则表达式(BD)的值为1
A)!
(a<0||a>0)B)a!
=0C)a=0D)a==0
11若有定义:
inta=3,b=5,c=8;则表达式!
(a-b)||(c-b)的值为()。
A)0B)2C)3D)1
12.若有定义:
intx,charc=’A’;则正确的赋值表达式是(D)。
(说明:
’A’的ASCII码的十进制值为65,’a’的ASCII码的十进制值为97)
A)x=c+’ABC’B)x=c+’CBA’
C)x=’ABC’D)X=c+32
13.(A)为非法的字符串常量
A)’123’B)”056”C)””D)”case”
14.(C)为正确的字符常量
A)’165’B)’\084’C)’@’D)’bcd’
15.(B)为合法的常量
A)’b_k’B)1.23E+8C)3.21E-6.5D)5,326
16.若有定义:
intb=-15,则()为正确的赋值表达式
A)b=*5B)b+=b*3
C)*b=6D)b+10=-5
17.若有定义:
intx=1,y=2,z=3,则表达式()的值为0.
A)xC)x||(y+z&&y-z)D!
((x18.若有定义:
inta=6,b=7,k=0,t=1;语句(k=a
A)10B)01C)00D)11
19.(B)语句符合C语言语法
A)floatx=3.2,inti,j=6;
B)floatx=2.3,b,c;
C)inta=2,b+=a;
D)inta=b=2,c=5;
20.下面叙述正确的是(D)
A)++2与3等价B)++2与--3等价
C)2/3与2%3等价D)5/(int)4.0与5/4等价
21.若有定义floatx=3.5,y=3.6;则表达式(C)的值为6
A)x+yB)(int)(x+y)
C)(int)x+(int)yD)int(x+y)
22.以下程序段运行后x的值为()
inta=3,b=6,x;
x=(a==b)?
a++:
--b;
A)3B)4C)6D)5
23.若有定义:
inta,b=5;语句a=(b/2)+(b%2);运行后,a的值为()
A)0B)2C)4D)3
24.若有定义:
inta=1,b=2,c=3,d=4,t=2,k=2;语句(t=a
A)-1B)1C)0D)2
25.若有定义:
floatx=2,y;inta=3;语句y=1*(x+a)/3;运行后y的值为()
A)1.666667B)1.0C)2.0D)0
26.下面运算符中优先级最低的是(B)。
A)!
B)=C)*D)>
27.若有定义:
inta=3;语句a+=a-=a*a;运行后,a的值为()
A)-12B)-3C)0D)-6
28.x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为()
A)-20C)!
(x>-20)&&!
(x<-5)D)x>-20&&x<-5
29.若有定义:
intx,y,z;语句x=(y=z=3,++y,z+=y);运行后,x的值为()。
A)7B)3C)6D)8
30.若有定义floatx;要从键盘输入数据6.02赋给x,则应选用()语句。
A)scanf(“%8.2f”,&x);B)scanf(“%1.2f”,&x);
C)scanf(“%4.2f”,&x);D)scanf(“%f”,&x);
31.若有语句inta,charc;
scanf(“%3d%c”,&a,&b);
为将整数135赋给a,字符’6’赋给c,正确的数据输入方式是()(说明代表换行,_代表空格)
A)1356
B)1356
C)135_6_
D)135_6
32.若有定义:
charc1=’A’,c2=’B’;语句printf(“%d+%d=%d”,c1,c2,c1+c2);运行的结果为()。
(说明’A’的ASCII码的十进制值为65)
A)A+B=131B)65+66=131
C)65+66=ABD)A+B=AB
33.若有定义:
inta=8,b=5;要实现输出形式为:
8*5=40,正确的printf()函数调用语句是()。
A)printf(“%d*%d=a*b\n”,a,b);
B)printf(“%d*%d=%d\n”,a,b,a*b);
C)printf(“a*b=%d\n”,a*b);
D)printf(“a*b=a*b\n”);
(三)控制结构
34.以下程序段运行的结果是()
ints=15;
switch(s/4)
{case1:
printf(“One”);
case2:
printf(“Two”);
case3:
printf(“Three”);
default:
printf(“Over”);
}
A)TwoOver
B)OneOver
C)ThreeOver
D)Three
35.以下程序段运行结果是()。
ints=15;
switch(s/4)
{default:
printf(“Over”);
case1:
printf(“One”);
break;
case2:
printf(“Two”);
}
A)OverOne
B)Two
C)One
D)Overtwo
36.以下程序段运行后,若从键盘输入5,则运行结果是()
inta,y=10;
scanf(“%d”,&a);
if(a>10)y=a+6;
printf(“%d\n”,y+a);
}
A)15B)16C)10D)11
37.以下程序运行结果是()
voidmain()
{inta,b=2,c=6;
a=3;
if(a>6)a=a+6;
elseif(a==6)b=a+c;
elsea=b+c;
printf(“%d\n”,a);}
A)6B)9C)5D)8
38.以下程序段运行后,x的值为()
inti,j,x=0;
for(i=3;i>=1;i--)
for(j=1;j<=i;j++)x=x+2;
A)10B)14C)8D)12
39.若有定义inti,x;()不是死循环
A)for(x=5;x>0;x--);
B)while(x=1);
C)for(;;i+=2);
D)for(i=10;;i--);
40.以下程序段运行后,x的值为()
inti=0,x=0;
for(;i<=5;i++,i++)
{x+=3;}
A)9B)6C)12D)15
41.以下程序段运行后x的值为()。
inti=0,x=2;
while(i++<=5)
{x+=2;
}
A)14B)8C)12D)10
42.下面叙述正确的是()
A)for循环的循环体可包含多条语句,但必须用花括号{}括起来
B)在for循环中,不能用break语句跳出循环体
C)for循环是先执行循环体语句,后判断表达式
D)for循环只能用于循环次数已经确定的循环
43.若有定义:
inti,x=0;语句for(i=1;i<=3;i++)x+=2;与下列()程序段不等价。
A)i=1;
for(;i<=3;){x+=2;i++;}
B)for(i=1;i<=3;){x+=2;i++;}
C)i=1;
for(;;i++)x+=2;
D)i=1;
for(;i<=3;i++)x+=2;
(四)数组
44.下面叙述错误的是(C)
A)数组中每一个元素都属于同一个数据类型
B)C语言规定可逐个引用数组元素,但不能一次引用整个数组
C)C语言数组长度在定义数组时可不确定
D)C语言数组名称是数组的首地址
45.若有定义:
inta[10],i=2;则能正确引用数组元素的是()
A)a[10]B)a(7)C)a[9+i]D)a[10-i]
46.若有定义:
intarr[15],n=5;无法正确引用arr数组元素的是(D)。
A)arr[0]
B)arr[n]
C)arr[15-n]
D)arr[10+n]
47.以下程序段运行后,x的值为()
inta[8]={1,2,3,4,5,6,7,8},i,x=0;
for(i=0;i<8;i++,i++)
x=x+a[i];
A)18B)16C)20D)36
48.C语言中,二维数组元素在内存中的存放顺序是()
A)按列存放B)随机存放
C)由用户自己定义D)按行存放
49..以下()对二维数组arr的初始化是错误的。
A)intarr[2][3]={{1,2},{3,4}};
B)intarr[2][3]={{1,2},{3,4},{5,6}};
C)intarr[][3]={1,2,3,4,5};
D)intarr[2][3]={{1},{3,4,5}};
50.以下程序段的运行结果是()
intt[][3]={1,2,3,4,5,6,7,8,9,10,11,12};
printf(“%d\n”,t[1][1])}
A)3B)1C)5D)4
51.以下程序段运行后,x的值为()
inti=0,x=0;
inta[3][3]={1,2,3,4,5,6,7,8,9};
for(;i<3;i++)
x+=a[i][i];
A)12B)18C)0D)15
52.以下程序运行的结果是()
intfun(intarray[3][3])
{intj;
for(j=0;j<3;j++)array[1][j]++;
printf(“\n”);
}
main()
{intj,a[3][3]={0,1,2,1,0,4,2,4,5};
fun(a);
for(j=0;j<3;j++)printf(“%2d”,a[1][j]);
printf(“\n”);
}
A)215B)104C)012D)123
53.以下程序段的运行结果是()。
charstr[3][2]={‘a’,’b’,’c’,’\0’,’e’,’f’};
printf(“%s”,str[0]);
A)abc\0efB)aC)abcD)abcef
(五)函数
54.只能向终端输出一个字符的是()
A)putchar()函数B)printf()函数
C)scanf()函数D)getchar()函数
55.getchar()函数的功能是获取终端输入的()。
A)多个字符B)一个整形变量表达式
C)一个字符D)一个实型变量值
56.下面叙述正确的是()
A)预处理命令也是C语句,必须以分号结束
B)宏展开不占用运行时间,只占用编译时间
C)一个源程序只能有一个预处理命令行
D)宏名必须用大写字母表示
57.下面叙述错误的是()。
A)C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率
B)“#definePRICE30”命令的作用是定义一个与30等价的符号常量PRICE
C)预处理命令行都必须以“#”开头
D)预处理命令行必须以分号结束
58.下面叙述错误的是()
A)”#include”命令的作用是在预处理时将stdio.h文件中的实际内容代替该命令
B)预处理命令行必须以分号结束
C)C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率
D)宏定义也是C语句,必须在行末加分号
59.以下程序运行结果是()
#defineXa+b
main()
{inta=3,b=4,s1;
s1=2*X;
printf(“%d\n”,s1);
}
A)10B)8C)6D)14
60.若有定义:
#definePI3,则表达式PI*2*2的值为()
A)4B)12C)不确定D)322
61.若有定义:
#defineF2+3,则表达式F*F的值为()
A)17B)13C)25D)11
62..以下程序段运行结果是()
charstr[]={“Fujian”};
printf(“%d”,strlen(str));
A)6B)8C)9D)7
63.以下程序段运行后,a的值为()
inta=2;
a=strcmp(“miss”,“miss”);
A)trueB)-1C)0D)1
64.以下程序段的运行结果是()
chara[]=”abcdef”;
charb[]=”xyz”
strcpy(a,b);
printf(“%c”,a[2]);
A)bB)zC)yD)c
65.若有定义:
charstr1[10],str2[10]=”Fujian”;能将字符串“Fujian”赋给数组str1的正确语句是()
A)strcpy(str1,str2);B)str1=”Fujian”;
C)strcpy(str2,str1);D)strcopy(str1,str2);
66.以下程序段的运行结果是()
chara[]=”abc”;
charb[]=”xyz”;
charc[10];
strcpy(c,a);
strcat(c,b);
printf(“%s”,c);
A)xyzabcB)abcxyzC)abcD)xyz
67.以下程序的运行结果是()
intf(intc)
{c+=2;returnc;}
main()
{inta=2,c=5;
a=f(a);
printf(“%d%d\n”,a,c);
}
A)44B)25C)45D)24
68.以下程序段运行结果是()
fun()
{staticinta=0;
a++;
printf(“%d“,a);
}
main()
{inti;
for(i=1;i<=2;i++)
fun();
}
A)12B)11C)00D)01
69.以下程序段的运行结果是()。
inta=2,b=3;
intmin(inta,intb)
{intc;
c=a
a:
b;
returnc;
}
main()
{inta=4;
printf(“%d”,min(a,b));
}
A)3B)2C)4D)2,3
(六)指针
70.下面叙述错误的是()
A)可以将一个整数值赋给指针变量
B)一个变量的地址称为该变量的指针
C)一个指针变量只能指向同一类型的变量
D)任何指针变量都可以与空类型NULL进行比较
71.以下程序段运行结果是()
intx[3]={1,2,3};
int*p;
p=x;
for(p++;p<&x[2];p++)
printf(“%d“,*p);
A)3B)2C)23D)12
72.以下程序运行的结果是()
main()
{chara[]=”137”,*p;
for(p=a;pprintf(“%s”,p);
}
A)7B)137C)137377D)13737
73.以下程序段运行后,*(p+1)的值为()
chara[]=”good”;
char*p;
p=a;
A)a[1]的地址B)’o’C)不确定D)’g’
74.()能正确定义一个指向函数的指针。
A)(int*)p()B)int*p()
C)int(*p())D)int(*p)()
75.以下程序段的运行结果是()
intx[]={2,3,4,5,6,7},*p=x;
inti,s=0;
for(i=1;i<5;i++)s+=p[i++];
printf(“%d”,s);
A)6B)8C)20D)14
76.以下程序段运行后,x的值为()
inta[]={1,2,3,4,5,6,7,8};
inti,x,*p;
x=1;p=&a[1];
for(i=0;i<3;i++)
x*=*(p+i);
A)120B)6C)1D)24
77.若有定义:
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则()表达式是错误的。
A)a++B)a[2]C)p++D)p[2]
78.若有定义
inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4];
p=a;()对数组a元素的引用是正确的
A)*(p[2]+3)B)**(p+4)C)(**p)[4]D)*(p[4])
79.下面程序段运行后,()对数组a元素的引用是错误的。
(其中0≤i<4,0≤j<3)
inti,j,(*p)[3];
inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12};
p=a;
A)*(*(a+i)+j)B)p[i][j]
C)*(*(p+i)[j]D)*(p[i]+j)
80.以下程序运行的结果是()
main()
{intx,y;
int*p,*q,*t;
x=23;y=45;
p=&x;q=&y;
t=p;
p=q;
q=t;
printf(“%d,%d\n”,x,y);
}
A)23,45B)45,23
C)23,23D)45,45
81.以下程序的运行结果是()。
main()
{inta[3]={1,2,3};
int*num[3];
int**p,i;
for(i=0;i<3;i++)
num[i]=&a[i];
p=num;
printf(“%d”,**p);
}
A)1B)3C)numD)&a[0]
82.若有定义:
inta[3][2];则表达式&a[2][1]-a的值为()
A)2B)3C)5D)4
(七)结构体与共用体
83.以下程序段的运行结果是()
union
{intnum1;
intnum2;
}s;
s.num1=20;
s.num2=30;
printf(“%d”,s.num1);
A)2030B)50C)30D)20
84.若有定义:
unionu_type
{intx;
floaty[3];
charz;
}a;
则变量a的长度是()
A)4B)15C)1D)12
85.若有定义:
structteacher
{intnum;
charsex;
intage;
}teacher1;
则下面叙述错误的是()
A)teacher1是结构类型名
B)struct是结构类型的关键字
C)structteacher是用户定义的结构类型
D)num、sex、age都是结构变量teacher1的成员
86.若有定义:
structdata
{chara;
floatb[3];
longc;
}d1;
则变量d1的长度是()
A)15B)12C)17D)4
87.若有定义:
structteacher
{intnum;
charname[10];
charsex;
intage;
}t1={2001,“LiMing”,’M’,35};
则下列()对结构体变量引用是正确的
A)t1.name[0]B)t1->name[0]
C)t1.nameD)t1->name
88下列程序段运行后,表达式()的值为3。
structpoint
{intx;
inty;
}*p;
structpointa[3]={1,2,3,4,5,6};
p=a;
A)*(p+2)B)p[3].xC)p[1].xD)p[2].x
(八)枚举、自定义类型和位运算
89有定义:
enumnum{a1,a2=3,a3,a4=10};则枚举常量a2,a3的值分别为()
A)12B)33C)23D)34
90若有定义:
enumda