C程序设计复习资料.docx
《C程序设计复习资料.docx》由会员分享,可在线阅读,更多相关《C程序设计复习资料.docx(39页珍藏版)》请在冰豆网上搜索。
C程序设计复习资料
第三章一、单选题
1.C语言源程序的扩展名为()
A..objB..cC..exeD..cpp
2.
(1)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()
A.大写字母B.中划线C.数字字符D.下划线
(2)下列选项中,不能用作标识符的是()
A._1234_B._1_2C.int_2_D.2_int_
(3)以下选项中合法的用户标识符是()
A.longB._2TestC.3DmaxD.A.dat
(4)下列定义变量的语句错误的是()
A.int_int;B.doubleint_;C.charFor;D.floatUS$;
(5)以下选项中不合法的标识符是()
A.printB.forC.&aD._00
3.在C语言中,整型数据分为()
A.二进制、八进制、十进制B.二进制、十进制、十六进制
C.八进制、十进制、十六进制D.二进制、八进制、十进制、十六进制
4.
(1)在C语言中,合法的实型常数是()
A.1.2E0.5B.3.14159EC.5E-3D.E15
(2)以下不合法的数值常量是()
A.011B.le1C.8.0E0.5D.0xabcd
(3)以下选项中,合法的一组C语言数值常量是()
A.028B.12.C..177D.0x8A
.5e-3OXa234e1.510,000
-0xf4.5e0Oabc3.e5
5.
(1)在C语言中,非法的字符常量是()
A.‘\t’B.‘\17’C."\n"D.‘\xaa’
(2)以下不合法的字符常量是()
A.‘\018’B.‘\"’C.‘\\’D.‘\xcc’
6.
(1)设有语句:
inta=3;则执行了语句a+=a-=a*a;变量a的值是()
A.3B.0C.9D.-12
(2)设有语句:
intx=10;则执行了语句x+=x-=x-x;变量x的值是()
A.10B.20C.40D.30
(3)设有语句:
inta=0;则执行语句a+=(a=8);变量a的值是()
A.0B.8C.16D.24
7.以下程序的输出结果是()()
⑴main()
{inti=10,j=1;
printf("%d,%d\n",i--,++j);}
A.9,2B.10,2C.9,1D.10,1
(2)main()
{intx=023;
printf("%d\n",--x);}
A.17B.18C.23D.24
8.intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()
A.k++B.k+=1C.++kD.k+1
9.以下程序的输出结果是
(1)main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}()
A.k=11,k=12,k=11B.k=11,k=13,k=13
C.k=11,k=013,k=0xbD.k=11,k=13,k=b
(2)main(){intk=17;printf("%d,%o,%x\n",k,k,k);}()
A.17,021,0x11B.17,17,17C.17,0x11,021D.17,21,11
10.运行时从键盘上输入9876543210(表示回车),则该程序的输出结果是()
main()
{inta;floatb,c;
scanf("%2d%3f%4f",&a,&b,&c);
printf("a=%d,b=%f,c=%f\n",a,b,c);
}
A.a=98,b=765,c=4321B.a=10,b=432,c=8765
C.a=98,b=765.000000,c=4321.000000D.a=98,b=765.0,c=4321.0
11.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量
a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
以下所示的输入形式中正
确的是(注:
□代表空格字符)()
A.10□X□20□Y<回车>B.10□X20□Y<回车>
C.10□X<回车>D.10X<回车>
20□Y<回车>20Y<回车>
二、填空题
1.一个C源程序至少应该有一个函数。
2.在C语言中,实型变量分为和。
3.
(1)以下程序运行后的输出结果是。
main()
{inta,b,c;
a=25;b=025;c=Ox25;
printf("%d%d%d\n",a,b,c);
}
(2)以下程序运行后的输出结果是。
main()
{inta=1,b=2;
a=a+b;b=a-b;a=a-b;
printf("%d,%d\n",a,b);
}
(3)设整型变量a和b中的值分别为7和9,要求按一下格式输出a和b的值:
a=7
b=9
请完成输出语句:
printf("",a,b);
4.
(1)以下程序运行后的输出结果是。
main()
{charch='B';
printf("%c%d\n",ch,ch);
}
(2)以下程序运行后的输出结果是。
main()
{charch='B';
ch+=32;
printf("%c\n",ch);
}
(3)以下程序运行后的输出结果是。
main()
{charch;
ch='H'-'A'+'0';
printf("%c\n",ch);
}
5.
(1)`以下程序运行后的输出结果是。
main()
{floatx=123.4567;
printf("%f\n",(int)(x*100+0.5)/100.0);
}
(2)`以下程序运行后的输出结果是。
main()
{floatx=2.5,y=4.7;
inta=7;
printf("%f\n",x+a%3*(int)(x+y)%2/4);
}
6.有程序如下,要求给i赋10,给j赋20,则应该从键盘输入。
main()
{inti,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d",i,j);
}
第四章选择结构程序设计
一、单选题
1.逻辑运算符两侧运算对象的数据类型()。
A)只能是0和1B)只能是0或非0正数
C)只能是整型或字符型数据D)可以是任何类型的数据
2.判断char型变量ch是否为大写字母的正确表达式是()。
A)‘A’<=ch<=‘Z’B)(ch>=‘A’)&(ch<=‘Z’)
C)(ch>=‘A’)&&(ch<=‘Z’)D)(‘A’<=ch)AND(‘Z’>=ch)
3.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是()。
A)A%2==1B)!
(A%2==0)C)!
(A%2)D)A%2
4.4.设有:
inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()。
A)1B)2C)3D)4
5.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是()。
if(x>y)z=x;x=y;y=z;
A)x=10,y=20,z=30B)x=20,y=30,z=30
C)x=20,y=30,z=10D)x=20,y=30,z=20
6.以下程序的运行结果是()。
main()
{intm=5;
if(m++>5)
printf(“%d\n”,m);
else;
printf(“%d\n”,m--);
}
A)4B)5C)6D)7
7.以下程序段的输出结果是()。
main()
{intx=1,y=2,z=3;
if(x>y)
if(yelseprintf("%d",++y);
printf("%d\n",x++);}
A.331B.41C.2D.1
8.以下程序段的输出结果是()。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;}
printf("a=%d,b=%d\n",a,b);}
A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1
二、填空题
12.
(1)以下程序运行后的输出结果是()。
main()
{inta=5,b=4,c=3,x;
x=a>b>c;
printf("%d\n",x);}
(2)以下程序运行后的输出结果是()。
main()
{inta=3,b=2;
b=a<0&&a++>3;
printf("%d,%d\n",a,b);
}
(3)以下程序运行后的输出结果是()。
main()
{inta,b,c=246;
a=c/100%9;
b=-1&&-1;
printf("%d,%d\n",a,b);
}
(4)以下程序运行后的输出结果是()。
main()
{inta,b,c;
a=10;b=20;
c=(a%b<1)||(a/b>1);
printf("%d,%d,%d\n",a,b,c);
}
13.
(1)以下程序运行后的输出结果是()。
Main()
{intx,a=1,b=2,c=3,d=4;
x=(a
a:
b;
x=(xx:
c;
x=(xx:
d;
printf("%d\n",x);
}
(2)以下程序运行后的输出结果是()。
Main()
{intx=1,y=2;
(x=y)?
++x:
--x;
printf("%d\n",x);
}
14.以下程序运行后的输出结果是()。
main()
{int a=3,b=4,c=5,t=99;
if(b if(a printf("%d%d%d\n",a,b,c);
}
15.输入32,则显示()。
输入42,则显示()。
main()
{inta,b;
scanf("%d%d",&a,&b);
if(a++>3)
{printf("%d",a);
if(++b<4)printf("%d",b);
elseprintf("%d",a);}
else
switch(a-b)
{case1:
printf("%d",a);
case2:
printf("%d",b);
case3:
printf("%d",a+b);}
}
16.以下程序运行后的输出结果是()。
main()
{intx=1,y=0;
switch(x)
{case1:
switch(y)
{case0:
printf("first\n");break;
case1:
printf("second\n");break;}
case2:
printf("third\n");break;}
}
第五章循环结构程序设计
(一)选择题
1.设有程序段
intk=10;
while(k=0)k=k-1;
这下面描述中正确的是_________.
a)while循环执行10次b)循环是无限循环
c)循环体语句以此也不执行d)循环体语句执行一次
2.语句while(!
E);中的表达式!
E等价于________.
a)E==0b)E!
=1c)E!
=0d)E==1
3.下面程序段的运行结果是__________.
intn=0;
while(n++<=2);printf("%d",n);
a)2b)3c)4d)有语法错
4.下面程序的运行结果是____.
#include
main()
{
intnum=0;
while(num<=2)
{
num++;
printf("%d\n",num);
}
}
a)1b)1c)1d)1
222
33
4
5.以下程序段________.
x=-1;
do{
x=x*x;
}
while(!
x);
a)是死循环b)循环执行二次
c)循环执行一次d)有语法错误
6.若有如下语句
intx=3;
do{printf(""%d\n",x-=2);}while(!
(--x));
则上面程序段______.
a)输出的是1b)输出的是1和-2c)输出的是3和0d)是死循环
7.若i为整型变量,则以下循环执行次数是_____.
for(i=2;i==0;)printf("%d",i--);
a)无限次b)0次c)1次d)2次
8.以下正确的描述是_______.
a)continue语句的作用是结束整个循环的执行
b)只能在循环体内和switch语句体内使用break语句
c)在循环体内使用break语句或continue语句的作用相同
d)从多层循环嵌套中退出时,只能使用goto语句
9.C语言中,while和do-while循环的主要区别是()。
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件更严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
10.下面有关for循环的正确描述是()。
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环的循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
11.对for(表达式1;;表达式3)可理解为()。
A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3)
12.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。
下面程序是求这堆零件总数,请选择填空()。
#include
main()
{inti;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!
((i-3)%7))
if(______)
printf(“%d”,i);
}
A)i%9=5 B)i%9!
=5 C)(i-5)%9!
=0 D)i%9==5
13.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空()。
#include
main()
{inti=0,j,k;
do{i++;k=316-13*i;}while(_______);
j=k/11;
printf(“316=13*%d+11*%d”,i,j);
}
A)k/11 B)k%11 C)k/11==0 D)k%11==0
14.若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是()。
#include
main()
{charc;
intv0=1,v1=0,v2=0;
do{
switch(c=getchar())
{case‘a’:
case‘A’:
case‘e’:
case‘E’:
case‘i’:
case‘I’:
case‘o’:
case‘O’:
case‘u’:
case‘U’:
v1+=1;
default:
v0+=1;v2+=1;
}
}while(c!
=’\n’);
printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);
}
A)v0=7,v1=4,v2=7 B)v0=8,v1=4,v2=8
C)v0=11,v1=4,v2=11 D)v0=12,v1=4,v2=12
15.下面程序段的运行结果是()。
a=1;b=2;c=2;
while(a
printf("%d,%d,%d",a,b,c);
A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1
16.以下程序执行后sum的值是()。
main()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum);
}
A)15 B)14 C)不确定 D)0
17.以下程序的输出结果是()。
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;
continue;
}
b-=5;
}
printf(“%d\n”,a);
}
A)7 B)8 C)9 D)10
18.以下程序的输出结果是()。
main()
{inti;
for(i=1;i<=5;i++)
{if(i%2)
printf(“*”);
else
continue;
printf(“#”);
}
printf(“$\n”);
}
A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$
19.以下程序的输出结果是()。
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf(“%d%d”,x--,y);
}
A)10192 B)9876 C)10990 D)101091
20.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是()。
for(i=5;i;i--)
for(j=0;j<4;j++){}
A)20 B)24 C)25 D)30
21.以下程序执行后sum的值是()。
main()
{inti,sum=0;
for(i=1;i<=3;sum++)sum+=i;
printf("%d\n",sum);
}
A)6 B)3 C)死循环 D)0
(二)、填空题
1.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束
循环。
请填空。
intn=0,c;
c=getchar();
while(____)
{
if(_____)n++;
c=getchar();
}
2.运行下面的程序,当用户输入2432时,程序的输出是_______。
#include
main()
{intr,m,n;
scanf("%d%d",&m,&n);
if(m{
m=m+n;
n=m-n;
m=m-n;
}
r=m%n;
while(r)
{
m=n;n=r;r=m%n;
}
printf("%d\n",n);
}
3.下面程序的运行结果是_________.
#include
main()
{inta,s,n,count;
a=2;s=0;n=1;count=1;
while(count<=7){n=n*a;s=s+n;++count;}
printf("s=%d",s);
}
4.下面程序段的运行结果是_________.
i=1;a=0;s=1;
do{a=a+s*i;s=-s;i++;}while(i<=10);
printf("a=%d",a);
5.下面程序段的运行结果是_______.
i=1;s=3;
do{s+=i++;
if(s%7==0)continue;
else++i;
}while(s<15);
printf("%d",i);
6.设有以下程序:
main()
{intn1,n2;
scanf("%d",&n2);
while(n2!
=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,则输出结果为。
第六章利用数组处理批量数据
单项选择题:
1.若二维数组a有m列,则在a[i][j]前的元素个数为________.
A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+1
2.设有数组定义:
chararray[]="China";则数组array所占的空间为()。
A)4个字节 B)5个字节 C)6个字节 D)7个字节
3.下列程序执行后的输出结果是()。
#include
main()
{chararr[2][4];
strcpy(arr,"you");strcpy(arr[1],"me