《C语言程序设计》综合复习资料.docx
《《C语言程序设计》综合复习资料.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》综合复习资料.docx(31页珍藏版)》请在冰豆网上搜索。
![《C语言程序设计》综合复习资料.docx](https://file1.bdocx.com/fileroot1/2022-12/16/7023189c-0a62-402c-8063-538f223529c2/7023189c-0a62-402c-8063-538f223529c21.gif)
《C语言程序设计》综合复习资料
《C语言程序设计》综合复习资料
要求掌握的章节:
第1章、第3章~第8章、
第10章(前4节)、第11章(前6节)
重点章节:
第3章~第8章、第10章(前4节)
难点章节:
第8章、第10章(前4节)
考试题型:
①选择题(填空题)(20%)
②读程序题(40%)
③编程序题(40%)
第1章C语言概述
一、选择题
1.能将高级语言编写的源程序转换为目标程序的软件是
A)汇编程序B)编辑程序C)解释程序D)编译程序
2.在一个C程序中
A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置
3.C语言中用于结构化程序设计的三种基本结构是
A)顺序结构、选择结构、循环结构B)if、switch、break
C)for、while、do-whileD)if、for、continue
4.C语言程序的基本单位是
A)函数B)过程C)子例程D)子程序
二、填空题
1.C语言程序总是从main函数开始执行。
2.C语言是种面向_____的程序设计语言,其程序的基本单位是函数。
.
3.C语言中的函数由、两部分组成。
4.结构化程序设计中所规定的三种基本控制结构是顺序结构、选择结构和循环结构。
第3章数据类型、运算符与表达式
一、选择题
1.下列关于C语言用户标识符的叙述中正确的是
A)用户标识符中可以出现下划线和中划线(减号)
B)用户标识符中不可以出现中划线,但可以出现下划线
C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
2.C语言中基本数据类型有
A)整型、实型、逻辑型B)整型、字符型、逻辑型
C)整型、实型、字符型D)整型、实型、字符型、逻辑型
3.在计算机中,一个字节所包含二进制位的个数是
A)2B)4C)8D)16
4.用8位无符号二进制数能表示的最大十进制数为
A)127B)128C)255D)256
5.在计算机系统中,存储一个汉字的国标码所需要的字节数为
A)1B)2C)3D)4
6.在C语言中,char型数据在内存中的存储形式是
A)原码B)补码C)反码D)ASCII码
7.十六进制数100转换为十进制数为
A)256B)512C)1024D)64
8.十六进制数7A转化成八进制数是
A)123B)122C)173D)172
9.十进制数32转化成十六进制数是
A)20B)ffC)10D)21
10.与十进制数511等值的十六进制数为
A)1FFB)2FFC)1FED)2FE
11.以下选项中可作为C语言合法整数的是
A)10110BB)0386C)0XffaD)x2a2
12.以下选项中合法的实型常数是
A)5E2.0B)E-3C).2E0D)1.3E
13.依据C语言的语法规则,下列()是用户定义的合法标识符。
A)intB)INTC)jin#2D)8f
14.依据C语言的语法规则,下列合法标识符是
A)ElseB)elseC)user$2D)5_examp
15.以下不正确的字符常量是
A)'8'B)'\xff'C)'\887'D)''
16.以下不正确的字符常量是
A)'\0'B)'\xgg'C)'0'D)'a'
17.以下选项中不合法的八进制数是
A)01B)077C)028D)00
18.下列运算符优先级最高的是
A)∙B)+C)&&D)!
=
19.若有说明:
chars1='\067',s2='1';则变量s1,s2在内存中各占的字节数是。
A)11B)41C)31D)12
20.以下不能定义为用户标识符的是
A)scanfB)VoidC)_3com_D)inte
21.在C语言中,可以作为用户标识符的一组标识符是
A)voiddefineWORDB)as_b3_224Else
C)Switch-wercaseD)4bDOSIG
22.若有:
intx=1,n=5;则执行语句x%=(n%2)后,x的值为
A)3B)2C)1D)0
23.设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值是
A)10B)9C)8D)7
24.已知:
chara=’a’;intb=0;floatc=-1.2;doubled=0;执行语句:
c=a+b+c+d;后,变量c的类型是
A)charB)intC)doubleD)float
25.表示x≤0或x≥1的正确的表达式是
A)x>=1||x<=0B)x>1||x<=0
C)x>=1orx<=0D)x>=1||x<0
26.对于intx=12,y=8;printf(“%d%d%d”,!
x,x||y,x&&y);输出的结果是
A)011B)010C)000D)111
27.设有intx=11;则表达式(x++*1/3)的值是
A)3B)4C)11D)12
28.以下非法的赋值语句是
A)n=(i=2,++i);B)j++;C)++(i+1);D)x=j>0;
29.已定义c为字符型变量,则下列语句中正确的是
A)c='97';B)c="97";C)c="a";D)c=97;
30.执行intj,i=1;j=-i++;后j的值是
A)-1B)-2C)1D)2
31.以下选项中非法的表达式是
A)(a+2)++B)i=j==0C)(char)(65+3)D)x+1=x+1
32.已知小写字母的ASCII码为97,对于inta=99,b='b';printf(“%c,%d”,a,b);的结果是
A)99,bB)c,98C)99,98D)c,b
33.以下选项中非法的表达式是
A)0<=x<100B)i=j==0C)(char)(65+3)D)x+1=x+1
34.下列错误的表达式是
A)-x++B)(-x)++C)x+++yD)++x+y
35.对于intx=12,y=8;printf(“%d%d%d”,!
x,x||y,x&&y);输出的结果是
A)011B)010C)000D)111
36.设a,b,c均为int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是
A)'a'&&'b'B)0||1C)a||b+c&&b-cD)!
((a
c||1)
37.若有定义:
inta=8,b=5,C;,执行语句C=a/b+0.4;后,C的值是
A)1.4B)1C)2.0D)2
38.以下选项中,与k=n++完全等价的表达式是
A)k=n,n=n+1B)n=n+1,k=nC)k=++nD)k+=n+1
39.设a=3,b=4,c=5,则逻辑表达式:
a||b+c&&b==c的值是
A)1B)0C)非0D)语法错
40.若x为int型变量,则逗号表达式(x=4*5,x*5),x+25的结果是
A)20B)45C)100D)表达式不合法
41.若有语句inti=﹣19,j=i%4;printf("%d\n",j);则输出结果是
A)3B)-3C)4.75D)0
42.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是
A)x=x*100+0.5/100.0;B)x=(x*100+0.5)/100.0;
C)x=(int)(x*100+0.5)/100.0;D)x=(x/100+0.5)*100.0;
43.已知小写字母的ASCII码为97,对于inta=99,b='b';printf(“%c,%d”,a,b);的结果是
A)99,bB)c,98C)99,98D)c,b
44.若有语句inti=﹣19,j=i%4;printf("%d\n",j);则输出结果是。
A)3B)-3C)4.75D)0
45.语句:
printf("%d",(a=2)&&(b=-2));的输出结果为
a)无输出b)结果不确定c)1d)2
46.有定义语句:
intx,y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是
A)1112<回车>B)11,12<回车>
C)11,12<回车>D)11,<回车>12<回车>
47.设a=3,b=4,c=5,则逻辑表达式:
a||b+c&&b==c的值是
A)1B)0C)非0D)语法错
48.已知charch='A';且表达式ch=(ch>='A'&&ch<='Z')?
(ch+32):
:
ch 的值是()
A)AB)aC)ZD)出错
49.如下程序段:
intx=2005,y=2006;
printf("%d\n",(x,y));
则以下叙述中正确的是
A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B)运行时产生出错信息
C)输出值为2005
D)输出值为2006
50.设有如下程序段:
intx=2,y=3;
printf("%d\n",(x,y));
则以下叙述中正确的是
A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B)运行时产生出错信息
C)输出值为2
D)输出值为3
二、填空题
1.C语言中逻辑”真”用表示,逻辑”假”用表示。
2.在C语言中,整数可用进制、进制和进制3种数制表示。
3.十进制数52转化成八进制数是。
4.十六进制数7A转化成八进制数是。
5.十进制数47转化成八进制数是。
6.在C语言中,’\101’是种特殊的字符常量,它称为,其表示的字符为。
7.在C语言程序中,整型数可用十进制、进制和进制3种数制表示。
070是个合法的整型数。
8.字符串“ab\034\\\x79”的长度为。
9.十六进制数7A转化成八进制数是。
10.语句:
printf("%d",(a=-10)&&(b=0));的输出结果为。
11.若w=1,x=2,y=3,z=4,则条件表达式ww:
yy:
z的结果为。
12.设a,b,c均为int型变量,且a=3,b=4,c=5,则表达式:
‘a’||b+c&&b-c的值是。
13.在C语言中,”a”表示常量,’a’表示常量。
14.表达式:
'a'–0x20–'A'的值是
16.若有说明语句,inti=-3,j;则执行语句j=(++i)+(i++);后j的值是。
17.已知intj,i=2;执行语句j=-i++;后,j的值是。
18.设inti=1;charc='1';则条件表达式c==1的值是。
19.语句:
printf("%d",(a=2)&&(b=-2));的输出结果为。
20有:
charc='A';printf("%d\n",c+1);则输出的结果为。
21有:
intx=-3;则执行语句:
x+=x-=x*x;后x的值为
22语句printf(“%%%%\n”);的输出为。
23若有说明:
chars1='\xff',s2='f';则变量s1,s2在内存中所占的字节数均为。
24在C语言中,char型数据在内存中是以形式存储,其存储的字节数是。
25设x,y,,z均为int型变量,写出描述“x或y中至少有一个小于z”的表达式是
第4章最简单的C程序设计——顺序程序设计
一、读程序,写出程序执行结果
1.voidmain()
{inta=5,b=8;
printf(“a=%db=%d\n”,a,b);
a=a+b;b=a-b;a=a-b;
printf(“a=%db=%d\n”,a,b);}
2.main()
{intx,y=1;
printf(“%c\n”,x=99);
printf(“%d\n”,(x++,++y,x+y));
}
3.main()
{intp=30;
printf("%d\n",(p/3>0?
p/10:
p%3));
}
4.main()
{intx,y=0;
printf(“%c\n”,x=99);
printf(“%d\n”,(x++,++y,x+y));
}
第5章选择结构程序设计
一、读程序,写出程序执行结果
1.voidmain()
{intx=-9,y;
if(x>0)y=10;
elseif(x==0)y=0;
elseif(x<-5)y=-3;
elsey=-2;
printf(“%d\n”,y);
}
2.voidmain()
{inta,b,c,x;
a=b=c=1;
x=3;
if(!
a)x--;
elseif(b)
if(c)x=3;
elsex=4;
printf(“%d\n”,x);}
3.voidmain()
{inta=12,b=5,c=-3;
if(a>b)
if(b<0)c=0;
elsec++;
printf(“%d\n”,c);}
4.main()
{intx=100,a=20,b=10;
intv1=5;
if(a
if(b!
=15)
if(!
v1)
x=1;
else
x=10;
x=-1;
printf(“%d”,x);
}
5.main()
{inta=4,b=3,c=5,t=0;
if(a
if(aprintf("%d%d%d\n",a,b,c);
}
6.main()
{inti=2;
switch(i)
{case1:
printf(“%d”,i++);
break;
case2:
printf(“%d”,i++);
case3:
printf(“%d”,i++);
break;
case4:
printf(“%d”,i++);}
}
7.voidmain()
{ints=’3’;
switch(s-'2')
{case0;
case1:
putchar(s+4);
case2:
putchar(s+4);break;
case3:
putchar(s+3);
default:
putchar(s+2);
}
}
8.voidmain()
{intx=2;
switch(1+x)
{case0;
case1:
printf(“apple”);break;
case2:
printf(“hello”);break;
case3:
printf(“world”);
default:
printf(“thankyou”);
}
}
第6章循环控制
一、选择题
1.对于循环for(k=16;k>0;k-=3)putchar(‘*’);输出是
A)*****B)******C)*******D)无限循环
2.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;for(b=1;b<=c;b++)s=s+1;
则与上述程序段功能等价的赋值语句是
A)s=a+b;B)s=a+c;C)s=s+c;D)s=b+c;
3.设有inti,x;则循环语句:
for(i=0,x=0;i<=9&&x!
=876;i++)scanf(“%d”,&x);
A)最多执行10次B)最多执行9次
C)是无限循环D)循环体一次也不执行
二、读程序,写出程序执行结果
1.main()
{intn=4;
while(n--)printf("%2d",--n);}
2.main()
{inti;
for(i=0;i<3;i++)
switch(i)
{case1:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
3.main()
{inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case0:
m++;n++;break;
case10:
n++;break;
default:
k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
4.main()
{inti,j;
for(i=5;i>1;i--)
{for(j=0;j<11-2*i;j++)putchar(‘‘);
for(j=0;j<2*i-1;j++)putchar('9');
}
}
5.main()
{inta;
for(a=1;a<6;a++)
{if(a%2)
printf(“%”);
else
continue;
printf(“@”);
}
}
6.voidmain()
{intx=2,y=3;
intj;
for(j=1;y>0;y--)j=j*x;
printf(“j=%d\n”,j);
}
7.voidmain()
{intn=-5;
while(++n)
printf("%2d",++n);
}
8.main()
{intx=15;
while(x>10&&x<50)
{x++;
if(x/3){x++;break;}
elsecontinue;}
printf(“%d\n”,x);
}
9.voidmain()
{intx,y;
for(x=1,y=1;y<=50;y++)
{if(x>=10)break;
if(x%2==1){x+=5;continue;}
x-=3;
}
printf("%d%d\n",x,y);}
10.main()
{intk=4,n=0;
for(;n{n++;
if(n%3!
=0)continue;
k--;}
printf("%d,%d\n",k,n);
}
11.voidmain()
{inti=1;
while(i<10)
if(++i%5!
=3)continue;
elseprintf("%d",i);
}
12.main()
{intk=0,m=0;
inti,j;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
k++;
k-=j;}
m=i+j;
printf(“k=%d,m=%d”,k,m);
}
13.voidmain()
{intt,n=15;
t=0;
do{
t+=n;
n-=2;
}while(n>0);
printf(“%d\n”,t);
}
14.voidmain()
{intn1,n2;
n2=5678;
while(n2!
=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
第7章数组
一、选择题
1.在执行inta[][3]={{1,2},{3,4}};语句后a[1][2]的值是
A、3 B、4 C、0 D、2
2.已知:
inta[][3]={1,2,3,4,5,6,7,8,9,0};则数组a的第一维的大小是
A)2B)3C)4D)无法确定;
3.以下能正确定义数组并正确赋初值的语句是
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}};
4.以下不能正确定义二维数组的选项是
A)inta[2][2]={{1},{2}};B)inta[][2]={1,2,3,4};
C)inta[2][2]={{1},2,3};D)inta[2][]={{1,2},{3,4}};
5.有语句:
chars1[10],s2[10]={"books"};则能将字符串books赋给数组s1的正确语句是
A)s1={"books"};B)strcpy(s1,s2);
C)s1=s2;D)strcpy(s2,s1);
6.C语言标准函数strcpy(s3,strcat(s1,s2))的功能是
A)将字符串s1复制到s2中,再连接到s3之后
B)将字符串s2连接到s1之后,再将s1复制到s3中
C)将字符串s2复制到s1中,再将s1连接到s3之后
D)将字符串s2连接到s1之后,再将s3复制到s1中
二、读程序,写出程序执行结果
1.main()
{intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
inti,s=0;
for(i=0;i<4;i++)s+=aa[i][3];
printf(“%d\n”,s);}
2.main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
}
}