C模拟卷和思考题.docx
《C模拟卷和思考题.docx》由会员分享,可在线阅读,更多相关《C模拟卷和思考题.docx(30页珍藏版)》请在冰豆网上搜索。
![C模拟卷和思考题.docx](https://file1.bdocx.com/fileroot1/2023-2/7/97db98c1-57c1-4492-be87-c92548617f43/97db98c1-57c1-4492-be87-c92548617f431.gif)
C模拟卷和思考题
思考题
●不仅要会做这些题,更重要的是要掌握其相关知识点。
典型程序一定要会默写。
●看题要细心;注意后续题;填空题输完要回车;程序题要运行且要保存;勿删注释符,但要删非法符;交卷前要检查!
一、一般填空题
1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【w】.
1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【a】.
1-3、fopen函数的原形在头文件【stdio.h】中.
1-4、getchar函数的原形在头文件【stdio.h】中.
1-5、sqrt函数的原形在头文件【math.h】中.
1-6、如果函数不要求带回值,可用【void】来定义函数返回值为空.
答案:
w或w+;a或a+;stdio.h;stdio.h;math.h;void.
2-1、字符串“\1011234\\at”的长度(字符数)是【8】.
2-2、测试字符串“abc\083\\bcd”的长度值是【3】.
2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【9】.
2-4、“a“在内存中占【2】个字节.
2-5、‘a’在内存中占【1】个字节.
2-6、“\71“在内存中占【2】个字节.
2-7、一维数组下标的最小值是【0】;数组chara[]=“china”;在内存应占【6】个字节。
答案:
8;3;9;2;1;2;0;6.
3-1、设x=(5>1)+2,x的植为【3】.
3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【171】.
3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【194】.
答案:
3;171;194;
4-1、if(!
a)中的表达式!
a等价于【a==0】.
4_2、已知a=1,b=2,c=3,执行if(a>b>c)b=a;elseb=c;a=4;b=8;后,b的值是【8】.
4_3、下列程序段的执行结果依次是【1,5,8】.
intx=1,y=2,a,b,z1=0,z2=2,z3=0;
z1=(a=3,b=5,a>b?
a++:
--b,a=1);
z2+=x>y?
++x:
++y;
z3=(a=2,b=5,a>b?
a++:
b++,a+b);
printf("%d,%d,%d\n",z1,z2,z3);
4_4、若x=3;y=4;t=1;执行t=++x||++y;后,y和t的值依次是【4,1】.
4_5、设a=12,执行语句:
a+=a-=a*a;后,a的值是【-264】。
答案:
a==0;8;1和5和8;4和1;-264;
5-1、若所用变量都已定义,下列程序段的执行结果是【OK】.
for(i=1;i<=5;i++);printf(“OK\n”);
5-2、执行语句chars[3]=”ab”,*p;p=s;后,*(p+2)的值是【\0】.
5-3、若有以下定义和语句:
inta[4]={0,1,2,3},*p;p=&a[2];,则*--p的值是【1】.
5-4、下列程序的输出结果是【10】,main(){inta=011;printf(“%d\n”,++a);}
5-5、i=4;printf(“%d,%d,%d\n”,i+8,i+=5,i--);输出结果?
9
答案:
OK;’\0’;1;10;17,9,4
6-1、若宏定义为:
#definey(x)2+x,则表达式a=3*y(3)的值为【9】.
6-2、若宏定义为:
#definey(x)2+x,则表达式a=4*y
(2)的值为【10】.
6-3、若宏定义为:
#definey(x)2/x,则表达式a=4+3*y(3)的值为【6】.
6_4、若宏定义为:
#definey(x)2/(x),则表达式a=4+3*y(3+4)的值为【4】.
答案:
9;10;6;4;
二、判断共10题(共计10分)
第1题(1.0分)若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。
答案:
Y
第2题(1.0分)inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列
的元素赋初值,其余元素值为0。
答案:
Y
第3题(1.0分)进行宏定义时,宏名必须使用大写字母表示。
答案:
N
第4题(1.0分)如果函数值的类型和return语句中表达式的值不一致,则以
函数类型为准。
答案:
Y
第5题(1.0分)一个include命令可以指定多个被包含的文件。
答案:
N
第6题(1.0分)inti,*p=&i;是正确的C说明。
答案:
Y
第7题(1.0分)
若有#defineS(a,b)a*b则语句area=S(3,2);area的值为6。
答案:
Y
第8题(1.0分)函数strlen("ASDFG\n")的值是7。
(正确答案是6)
答案:
N
第9题(1.0分)若有定义和语句:
inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21.
答案:
Y
第10题(1.0分)
charc[]="VeryGood";是一个合法的为字符串数组赋值的语句。
答案:
Y
三、单项选择题
1-1、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是(A)。
A:
文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作
B:
文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作
C:
文件打开时,原有文件内容被删除,只可作写操作
D:
以上各种说法皆不正确
1-2、若执行fopen函数时发生错误,则函数的返回值是(B)。
A:
地址值B:
0C:
1D:
EOF
1_3、若要打开d盘上user子目录下名为abc.txt的文件进行读、写操作,符合要求的是(B)。
A:
fopen(“d:
\user\abc.txt”,“r”)B:
fopen(“d:
\\user\\abc.txt”,“r+”)
C:
fopen(“d:
\user\abc.txt”,“rb”)D:
fopen(“d:
\\user\\abc.txt”,“w”)
答案:
A;B;B;
2-1、以下属于c语言预先规定的保留字是(A)。
A:
intB:
scoreC:
averD:
sum
2-2、下列运算符中优先级最高的是(B)。
A:
+C:
&&D:
!
=
2-3、下面不正确的字符串常量是(A)。
A:
‘abc’B:
’’12’12”C:
”0”D:
”“
2-4、运算对象必须是整型的运算符是(A)。
A:
%B:
/C:
=D:
<=
2-5、下面错误的常量是(B)。
A:
0xffB:
1.2e0.5(指数必须为整数)C:
2LD:
’\72’
2-6、下列变量定义语句中,正确的是(D)。
A:
char:
abc;B:
chara;b;c;C:
intx;z;D:
intx,z;
2-7、sizeof(float)是(B)。
A:
一个双精度型表达式B:
一个整型表达式C:
一种函数调用D:
不合法表达式
2_8、c语言的注释语句开头必须是(C)。
A:
/B:
*C:
/*D:
’
2_9、设以下变量均为int类型,则值不等于7的表达式是(C)。
A:
(x=y=6,x+y,x+1)B:
(x=y=6,x+y,y+1)C:
(x=6,x+1,y=6,x+y)D:
(y=6,y+1,x=y,x+1)
2_10、C程序的语句结束符是(A)。
A:
;B:
:
C:
.D:
换行
2_11、C语言中用于结构化程序设计的三种基本结构是(A)。
A:
顺序结构、选择结构和循环结构B:
if、switch、break
C:
for、while、do-whileD:
if、for、continue
2_12、C语言中,int、char和short三种类型的数据在内存中占用的字节数(C)。
A:
由用户自己定义B:
均为两个字节C:
由编译系统定D:
由所用机器的字长决定
答案:
A;B;A;A;B;D;B;C;C;A;A;D;
3-1、在一个c程序中(B)。
A:
main函数必须出现在所有函数之前B:
main函数的位置没有特别限制
C:
main函数必须出现在所有函数之后D:
main函数必须出现固定位置
3-2、已知函数原形声明为:
floatwww(chara,charb);该函数的类型为(C)。
A:
指向字符型的指针B:
字符型C:
浮点型D:
指向浮点型的指针
3-3、与实际参数为整型数组名相对应的形式参数不可以定义为(C)。
A:
inta[];B:
int*a;C:
inta;D:
inta[3];
3_4、全局变量的定义不可能在(A)。
A:
函数内部B:
函数外面C:
文件外面D:
最后一行
3_5、putchar函数可以向终端输出一个(D)。
A:
整型变量表达式的值B:
实型变量的值C:
字符串D:
字符或字符型变量值
3_6、数组名作为实际参数传给子函数的形式参数时,数组名被处理为(C)。
A:
数组的长度B:
数组的元素个数C:
数组的首地址D:
数组中各元素的值
3_7、C语言中,当调用函数时(A)。
A:
实参和形参本身各占一个独立的存储单元B:
实参和形参可以共用存储单元
C:
实参和形参可以由用户指定是否共用存储单元D:
由计算机自动确定是否共用存储单元
3_8、调用函数时,实参和形参必须保持一致的是(D)。
A:
在个数上B:
在类型上C:
在顺序上D:
在个数、类型、顺序上
答案:
B;C;C;A;D;C;A;D;
4-1、inta=3,b=2,c=1;if(a>b>c)a=b;elsea=c;则a的值为(C)。
A:
3B:
2C:
1D:
0
4-2、下列程序的输出为(D)。
main()
{inty=10;while(y--);printf("y=%d\n",y);}
A:
y=0B:
while构成无限循环C:
y=1D:
y=-1
4-3、假设所有变量都为整型,表达式(a=2,b=5,a>b?
a++:
b++,a+b)的值是(B).
(看成3或4个逗号表达式,结果都一样)
A:
7B:
8C:
9D:
2
4-4、以下程序的输出结果是(B)。
main()
{inti=010,j=10;printf("%d,%d\n",++i,j--);}
A:
11,10B:
9,10C:
10,9D:
10,9
4_5、设a=2,且a定义为整型变量,执行语句a+=a-=a*=a;后,a的值为(C)。
A:
12B:
144C:
0D:
132
4-6、inta=1,b=2,c=3;if(a>c)a=b;a=c;c=b;则c的值为(B)。
A:
1B:
2C:
3D:
不一定
4-7、若变量a与i已正确定义,且i已正确赋值,合法的语句是(B)。
A:
a==1B:
++i;C:
a=a++=5;D:
a=int(i);
4_8、strlen(“12\0345\n”)与strlen(“12\0845\n”)的测试结果分别是(C)
A:
相同B:
2和5C:
5和2D:
5和5
4_9、设chars[10]="\ta\017bc";则数组s所占的字节数是(B)。
A:
9B:
10C:
6D:
7
4_10、设char*s="\ta\017bc";则指针变量s指向的字符串所占的字节数是(C)。
A:
9B:
5C:
6D:
7
4_11、若i=3,则printf("%d",-i++);输出的值和i的值分别为(B)。
A:
相同B:
-3和4C:
5和2D:
5和5
4_12、执行:
inta=1,b=10;do{b-=a;a++;}while(b--<0);后,b的值是(C)。
A:
9B:
-2C:
8D:
-1
答案:
C;D;B;B;C;B;B;C;B;C;B;C;
5-1、一维数组定义的格式为:
类型说明符数组名(A)。
A:
[正整常量表达式]B:
[整型表达式]C:
[整型常量]或[整型表达式]D:
[整型常量]
5-2、以下能正确定义数组并正确赋初值的邮局语句是(D)。
A:
intN=5,b[N][N];B:
inta[1][2]={{1},{3}};
C:
intc[2][]={{1,2},{3,4}};D:
intd[3][2]={{1,2},{34}};
5_3、以下不正确的定义语句是(B)。
A:
doublex[5]={2.0,4.0,6.0,8.0,10.0};B:
inty[5]={0,1,3,5,7,9};
C:
charc1[]={‘1’,’2’,’3’,’4’,’5’};D:
charc2[]={‘\x10’,’\xa’,’\x8’};
5_4、在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)。
A:
整型常量B:
整型表达式C:
正整型常量或正整型表达式D:
任何类型的表达式
5_5、若有说明:
inta[10];则对a数组元素的正确引用是(D)。
A:
a[10]B:
a[3,5](VC中可以)C:
a(5)D:
a[10-10]
3_6、下列数组定义中,正确的是(A)。
A:
inta[][4];B:
inta[][];C:
inta[][][5];D:
inta[3][];
5_7、若有说明:
inta[10];则对a数组元素的正确引用是(D)。
A:
a[10]B:
a[3,5](VC中可以)C:
a(5)D:
a[3>1]
答案:
A;D;B;C;D;A;D;
6-1、相同结构体类型的变量之间可以(B)。
A:
相加B:
赋值C:
比较大小D:
地址相同
6_2、结构体类型的定义允许嵌套是指(A)。
A:
成员是已经或正在定义的结构体型B:
成员可以重名
C:
结构体型可以派生D:
定义多个结构体型
6_3、有如下定义:
structstudent{charname[20];intage;}wang,*p;p=&wang;,以下不合法的引用为()。
A:
p.ageB:
wang.ageC:
p->ageD:
(*p).age
6_4、在定义构造数据类型时,不能()。
A:
说明变量B:
说明存储类型C:
初始化D:
末尾不写分号
6_5、当定义一个结构体变量时,系统分配给它的内存是()。
A:
各成员所需内存量的总和B:
结构中第一个成员所需内存量
C:
结构中最后一个成员所需内存量D:
成员中占内存量最大者所需的容量
6_6、enuma{sum=9,mon=-1,tue};定义了()。
A:
枚举变量B:
3个标识符C:
枚举数据类型D:
整数9和-1
6_7、设有:
enumteam{my,you=4,his,her=his+5};则
Printf(“%d,%d,%d,%d\n”,my,your,his,her);的输出是()。
A:
0,1,2,3B:
0,4,0,10C:
0,4,5,10D:
1,4,5,10
6_8、以下各选项企图说明一种新的类型名,其中正确的是()。
A:
typedefv1int;B:
typedefv2=int;
C:
typedefintV3;D:
typedefv4:
int;
6_8、下列程序中错误的语句是:
#include
main()
{
①enumaa{red,blue}bb;
②bb=red;
③bb=0;
④bb=black;
⑤bb=2;
⑥bb=enumcc{white,black}dd;
}
答案:
B;A;A;D;A;C;C;C;④⑤⑥
7-1、若宏定义为:
#definey2+3,则表达式y*3+3的值为(A).
A:
14B:
16C:
18D:
20
7-2、若宏定义为:
#definey2+3,则表达式2+y*3的值为(B).
A:
11B:
13C:
15D:
17
7_3、有宏定义为:
#defineY(a,b)a+b,则表达式2+Y(2,3)*3的值为(B).
A:
11B:
13C:
15D:
17
7_4、对于#defineS(r)2*r*r和#defineS(r)2*(r)*(r),s(3+4)的结果是(C).
A:
98和22B:
13和4C:
22和98D:
98和98
答案:
A;B;B;C;
8-1、如有int*p,a=5,b;定义,则以下正确的程序段为(D)。
A:
p=&b;scanf(“%d’,&p);B:
p=&b;scanf(“%d’,*p);
C:
scanf(“%d’,&b);p=b;D:
p=&b;p=&a;
★8-2、若有语句:
inta[3][4],*p[3]={a[0],a[1],a[2]};不能表示a[2][3]的元素的是(D)。
A:
*(*(a+2)+3)B:
*(*(p+2)+3)C:
*(p[2]+3)D:
(*(p+2))
8_3、p1,p2为指向浮点的指针变量,则下列运算错误的是(C)。
A:
*p1-*p2B:
p1++C:
*p1%*p2D:
p1-p2
8_4、有以下定义:
inta[2][3];,则对数组元素的正确引用(A)是。
A:
*(*(a+i)+j)B:
(a+i)[j]C:
*(a+i+j)D:
a[i]+j
8_5、若有定义:
int(*p)();,则该指针为(C)。
A:
指向整型的指针B:
指向字符型的指针C:
指向整型函数的指针D:
指向字符型函数的指针
8_6、下列正确的定义是(A)。
1inti,*p=&i;②int*p=&i,i;③int*p,i;p=&i;④int*p,i;p=i;⑤int*p,i,p=&i;
A:
①③B:
②④C:
②⑤D:
④①
答案:
D;D;C;A;C;A;
一份模拟卷
一、填空共10题(共计10分)
第1题(1.0分)字符串"abc\103\\bcd"的长度是【8】。
①答案:
8回车
第2题(1.0分)getchar()函数的原型在【stdio.h】中。
答案:
stdio.h
第3题(1.0分)
定义inta[2][3];表示数组a中的元素个数是【6】个。
答案:
6
第4题(1.0分)intx=2,y=3,z=4;则表达式x+y>!
z的值为【1】.
答案:
1
第5题(1.0分)getchar()函数只能接收一个【字符】。
答案:
字符
第6题(1.0分)
intx=2,y=3,z=4;则表达式x+y&&z的值为【1】.
答案:
1
第7题(1.0分)若有以下数组a,数组元素:
a[0]~a[9],其值为
941282107513
该数组可用的最大下标值是【9】。
答案:
9
第8题(1.0分)若有以下定义和语句:
inta[4]={0,1,2,3},*p;
p=&a[2];
则*--p的值是【1】。
答案:
1
第9题(1.0分)已知a=12,写出表达式(0答案:
0
第10题(1.0分)
表达式a+=b相当于表达式【a=a+b或a=b+a】。
答案:
a=a+b或a=b+a
二、判断共10题(共计10分)
第1题(1.0分)若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。
对滴
答案:
Y
第2题(1.0分)inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列
的元素赋初值,其余元素值为0。
对滴
答案:
Y
第3题(1.0分)进行宏定义时,宏名必须使用大写字母表示。
错滴
答案:
N
第4题(1.0分)如果函数值的类型和return语句中表达式的值不一致,则以
函数类型为准。
对滴
答案:
Y
第5题(1.0分)一个include命令可以指定多个被包含的文件。
错滴
答案:
N
第6题(1.0分)inti,*p=&i;是正确的C说明。
对滴
答案:
Y
第7题(1.0分)
若有#defineS(a,b)a*b则语句area=S(3,2);area的值为6。
对滴
答案:
Y
第8题(1.0分)函数strlen("ASDFG\n")的值是7。
错滴
答案:
N
第9题(1.0分)若有定义和语句:
inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21.对滴
答案:
Y
第10题(1.0分)
charc[]="VeryGood";是一个合法的为字符串数组赋值的语句。
对滴
答案:
Y
三、单项选择共20题(共计30分)
第1题(1.5分)逻辑运算符两侧运算对象的数据类型(D)。
A:
只能是0或1
B:
只能是0或非0正数
C:
只能是整型或字符型数据
D:
可以是任何类型的数据
答案:
D
第2题(1.5分)若用数组第一个元素作为函数的实参,传递给形参的是(B).
A:
数组的首地址
B:
数组第一个元素的值
C:
数组中全部元素的值
D:
数组元素的个数
答案:
B
第3题(1.5分)以下运算符中,优先级最高的运算符是(D)。
A:
=
B:
!
=
C:
*(乘号)
D:
()
答案:
D
第4题(1.5分)下列运算符中,不属于关系运算符的是(D)。
A:
<
B:
>
C:
>=
D:
!
答案:
D
第5题(1.5分)
调用函数时,形式参数和实际参数必须保持一致的是(D).
A:
在个数上一致
B:
在类型上一致
C:
在顺序上一致
D:
在个数、类型、顺序上一致
答案:
D
第6题(1.5分)C语言规定,函数返回值的类型是由(D)。
A:
return语句中的表达式类型所决定
B:
调用该函数时的主调函数类型所决定
C:
调用该函数时系统临时决定
D:
在定义该函数时所指定的函数类型所决定
答案:
D
第7题(1.5分)以下不正确的if语句形式是(C)。
A:
if(x>y&&x!
=y);
B:
if(x==y)x+=y;
C:
if(x!
=y)scanf("%d",&x)elsescanf("%d",&y);
D:
if(x答案:
C
第8题(1.5分)下列定义数组的语句中正确的是(A)。
A:
#definesize10charstr1[size],str2[size+2];
B:
charstr[];
C:
intnum['10'];
D:
intn=5;inta[n][n+2];
答案:
A
第9题(1.5分)执行下面程序后,输出结果是(A)。
main()
{a=45,b=27,c=0;
c=max(a,b);
printf("%d\n",c);
}
intmax(x,y)
intx,y;
{intz;
if(x>y)z=x;