cc语言test.docx
《cc语言test.docx》由会员分享,可在线阅读,更多相关《cc语言test.docx(24页珍藏版)》请在冰点文库上搜索。
cc语言test
第一章C语言概述
1.1一个C程序的执行是从__________。
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
1.2以下叙述正确的是__________。
A)在C程序中,main函数必须位于程序的最前面
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
1.3以下叙述不正确的是__________。
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
1.4C语言规定:
在一个源程序中,main函数的位置__________。
A)必须在最开始C)可以任意
B)必须在系统调用的库函数的后面D)必须在最后
1.5一个C语言程序是由__________。
A)一个主程序和若干子程序组成C)若干过程组成
B)函数组成D)若干子程序组成
第二章数据类型、运算符与表达式
2.1下面四个选项中,均是不合法的用户标识的选项是__________。
A)AP_0doC)b-agotoint
B)float1a0_AD)_123tempINT
2.2C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符__________。
A)必须为字母C)必须为字母或下划线
B)必须为下划线D)可以是字母、数字和下划线中任一种字符
2.3下面四个选项中,均是合法整形常量的选项是__________。
A)160-0xffff011C)–01986,0120668
B)–0xcdf01a0xeD)–0x48a2e50x
2.4下面四个选项中,均是不合法的浮点数的选项是__________。
A)160.0.12e3C)–.18123e40.0
B)1232e4.2.e5D)–e3.2341e3
2.5下面四个选项中,均是合法转义字符的选项是__________。
A)‘\’’‘\\’‘\n’C)‘\018’‘\f’‘xab’
B)‘\’ ‘\017’ ‘\”’D)‘\\0’‘\101’‘x1f’
2.6下面正确的字符常量是__________。
A)“c”B)‘\\’’C)‘W’D)‘’
2.7下面四个选项中,均是正确的数值常量或字符常量的选项是__________。
A)0.00f8.9e‘&’C)‘3’0110xFF000a
B)“a”3.9E-2.51e1‘\”’D)+0010xabcd2e250.
2.8下面不正确的字符串常量是__________。
A)‘abc’ B)“12’12”C)“0”D)“”
2.9对应以下个代数式中,若变量a和x均为double类型,则不正确的C语言表达式是__________。
代数式C语言表达式
exp(x*x/2)/sqrt(2*3.14159)
1.0/2.0*(a*x+(a+x)/(4*a))
sqrt((pow(sin(x*3.14159/180),2.5))
x*x-exp(5.0)
2.10以下正确的叙述是__________。
A)在C程序中,每行中只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此实行变量中允许存放整型数
C)在C程序中,无论是整数还是实数,都能被准确无误地表示
D)在C程序中,%是只能用于整数运算的运算符
2.11已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’;后,c2中的值为__________。
A)DB)68C)不确定的值D)C
2.12若有说明语句:
charc=‘\72’;则变量c__________。
A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定
2.13若有定义:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是__________。
A)2.500000B)2.750000C)3.500000D)0.000000
2.14sizeof(float)是__________。
A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式
2.15若有代数式,则正确的C语言表达式是__________。
A)sqrt(fabs(pow(y,x)+log(y)))C)sqrt(fabs(pow(x,y)+log(y)))
B)sqrt(abs(pow(y,x)+log(y)))D)sqrt(abs(pow(x,y)+log(y)))
2.16若有代数式||,则正确的C语言表达式是__________。
A)fabs(x*3+log(x))C)abs(pow(x,3.0)+log(x))
B)abs(pow(x,3)+log(x))D)fabs(pow(x,3.0)+log(x))
2.17在C语言中,char型数据在内存中的存储形式是__________。
A)补码B)反码C)原码D)ASCII码
2.18设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是__________。
A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0
2.19设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为__________。
A)0~255B)0~32767C)0~65535D)0~2147483647
2.20若a是int型变量,则下面表达式的值为__________。
(a=4*5,a*2),a+6
2.21若x和a均是int型变量,则执行表达式
(1)后的x值为__________,执行表达式
(2)后的x值为__________。
(1)x=(a=4,6*2)
(2)x=a=4,6*2
2.22若a、b和c均是int型变量,则执行下面表达式后,a值为__________,b值为__________,c值为__________。
a=(b=4)+(c=2)
2.23假设m是一个三位数,从左到右用a、b、c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是__________。
第三章最简单的C程序设计
3.1putchar函数可以向终端输出一个__________。
A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值
3.2printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按方式__________;如果字符串长度小于5,则输出按方式__________。
A)从左起输出该字串,右补空格C)右对齐输出该字串,左补空格
B)按原字符长从左向右全部输D)输出出错误信息
3.3已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据是,正确的数据输入方式是__________。
inta1,a2;charc1,c2;
scanf(“%d%d”,&a1,&a2);
scanf(“%c%c”,&c1,&c2);
A)1020ABB)1020C)1020ABD)1020AB
AB
3.4根据定义和数据的输入方式,输入语句的正确形式为__________。
已有定义:
floatf1,f2;
数据的输入方式:
4.52
3.5
A)scanf(“%f,%f”,&f1,&f2);C)scanf(“%3.2f%2.1f”,&f1,&f2);
B)scanf(“%f%f”,&f1,&f2);D)scanf(“%3.2f%2.1f”,&f1,&f2);
3.5阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为__________。
main()
{intx,y,z;
scanf(“%d%d%d”,&x,&y,&z);
printf(“x+y+z=%d\n”,x+y+z);
}
A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定值
3.6设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和
z的值是__________。
A)x=10y=15z=10C)x=10y=10z=15
B)x=10y=10z=10D)x=10y=5z=10
3.7以下程序的输出结果为__________。
main()
{printf(“*%f,%4.3f*\n”,3.14,3.1415);}
3.8假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。
请填空。
a+__________;b=a-__________;a-=__________;
3.9假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即:
把b中的值给a,把c中的值给b,把a中的值给c。
例如:
交换前,a=10、b=20、c=30;交换后,a=20,b=30,c=10。
请填空。
__________;a=b;b=c;__________;
第四章逻辑运算和判断选取控制
4.1逻辑运算符两侧运算对象的数据类型__________。
A)只能是0或1C)可以是任何类型的数据
B)只能是整型或字符型数据D)只能是0或非0正数
4.2以下关于运算符优先顺序的描述中正确的是__________。
A)关系运算符〈算术运算符〈赋值运算符〈逻辑与运算符
B)逻辑与运算符〈关系运算符〈算术运算符〈赋值运算符
C)赋值运算符〈逻辑与运算符〈关系运算符〈算术运算符
D)算术运算符〈关系运算符〈赋值运算符〈逻辑与运算符
4.3下列运算符中优先级最高的是__________。
A)
=
4.4判断char型变量ch是否为大写字母的正确表达式是__________。
A)‘A’<=ch<=‘Z’B)(ch>=’A’)&(ch<=’Z’)
C)(ch>=’A’)&&(ch<=’Z’)D)(‘A’<=ch)AND(‘Z’>=ch)
4.5若希望当A的值为奇数时,表达式的值为”真”,A的值为偶数时,表达式的值为”假”.则以下不能满足要求的表达式是__________。
A)A%2==1B)!
(A%2==0)C)!
(A%2)D)A%2
4.6设有:
inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为__________。
A)1B)2C)3D)4
4.7已知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=30C)x=20,y=30,z=10D)x=20,y=30,z=20
4.8以下if语句语法正确的是__________。
A)if(x>0)B)if(x>0)
printf(“%f”,x){x=x+y;printf(“%f”,x);}
elseprintf(“%f”,-x);elseprintf(“%f”,-x);
C)if(x>0)D)if(x>0)
{x=x+y;printf(“%f”,x);};{x=x+y;printf(“%f”,x)}
elseprintf(“%f”,-x);elseprintf(“%f”,-x);
4.9请阅读以下程序:
main()
{inta=5,b=2,c=0;
if(a=b+c)printf(“***\n”);
elseprintf(“$$$\n”);
}
以上程序__________。
A)有语法错不能通过编译B)可以通过编译但不能通过连接
C)输出***D)输出$$$
4.10以下程序的运行结果是__________。
main()
{intm=5;
if(m++>5)printf(“%d\n”,m);
elseprintf(“%d\n”,m--);
}
A)4B)5C)6D)7
4.11有一函数关系见下表:
X
Y=
X<0
X-1
X=0
X
X>0
X+1
下面程序段中能正确表示上面关系的是__________。
A)y=x+1;B)y=x-1;C)if(x<=0)D)y=x;
if(x>=0)if(x!
=0)if(x<0)y=x-1;if(x<=0)
if(x==0)y=x;if(x>0)y=x+1;elsey=x;if(x<0)y=x-1;
elsey=x-1;elsey=x;elsey=x+1;elsey=x+1;
4.12为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:
else子句总是与__________配对。
A)缩排位置相同的ifB)其之前最近的ifC)其之后最近的ifD)同一行上的if
4.13若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是__________。
A)(exp==0)B)(exp!
=0)C)(exp==1)D)(exp!
=1)
4.14以下程序的运行结果是__________。
main()
{intk=4,a=3,b=2,c=1;
printf(“\n%d\n”,kk:
c
c:
a);
}
A)4B)3C)2D)1
4.15执行以下程序段后的输出结果是__________。
intw=3,z=7,x=10;
printf(“%d\n”,x>10?
x+100:
x-10);
printf(“%d\n”,w++||z++);
printf(“%d\n”,!
w>z);
printf(“%d\n”,w&&z);
A)0B)1C)0D)0
1111
1100
1110
4.16设x,y,z均为int型变量,请写出描述“x,y和z中有两个为负数”的表达式__________。
4.17以下程序段的运行结果是__________。
intx=1,y=0;
switch(x)
{case1:
switch(y)
{case0:
printf(“**1**\n”);break;
case1:
printf(“**2**\n”);break;
}
case2:
printf(“**3**\n”);
}
第五章循环控制
5.1设有程序段
intk=10;while(k=2)k=k-1;
则下面描述中正确的是__________。
A)while循环执行10次C)循环体语句依次也不执行
B)循环是无限循环D)循环体语句执行一次
5.2语句while(!
E);中的表达式!
E等价于__________。
A)E==0B)E!
=1C)E!
=0D)E==1
5.3下面程序段的运行结果是__________。
a=1;b=2;c=2;
while(a
printf(“%d,%d,%d”,a,b,c);
A)1,2,0B)2,1,0C)1,2,1D)2,1,1
5.4下面程序段的运行结果是__________。
intn=0;
while(n++<=2);printf(“%d”,n);
A)2B)3C)4D)有语法错
5.5下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,选择填空。
#include
main()
{inta,max=0;
scanf(“%d”,&a);
while(__________)
{if(maxscanf(“%d”,&a);
}
printf(“%d”,max);
}
A)a==0B)aC)!
a==1D)!
a
5.6若运行以下程序时,从键盘输入2473(表示回车),则下面程序的运行结果是__________。
#include
main()
{intc;
while((c=getchar())!
=’\n’)
switch(c-’2’)
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
printf(“\n”);
}
A)668977B)668966C)66778777D)6688766
5.7以下能正确计算1*2*3*…*10的程序段是__________。
A)do{i=1;s=1;s=s*i;i++;}while(i<=10);C)i=1;s=1;do{s=s*i;i++;}whille(i<=10);
B)do{i=1;s=0;s=s*i;i++;}while(i<=10);D)i=1;s=0;do{s=s*i;i++;}whille(i<=10);
5.8下面有关for循环的正确描述是__________。
A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
5.9对for(表达式1;;表达式3)可理解为__________。
A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)
5.10下列程序段不是死循环的是__________。
A)inti=100;while
(1){i=i%100+1;if(i>100)break;}
B)for(;;);
C)intk=0;do{++k;}while(k>=0);
D)ints=36;while(s);--s;
5.11下面程序的运行结果是__________。
#include“stdio.h”
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf(“x=%d\n”,x);}
A)x=4B)x=8C)x=6D)x=12
5.12有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?
请填空。
#include
main()
{intday,x1,x2;
day=0;x1=1020;
while(__________){x2=__________;x1=x2;day++;}
printf(“day=%d\n”,day);
}
5.13鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。
for(x=1;x<=29;x++)
{y=30-x;
if(__________)printf(“%d,%d\n”,x,y);
}
第六章数组
6.1以下对一维整型数组a的正确的说明是_________。
A)inta(10);B)intn=10,a[n];
C)intn;D)#defineSIZE10
scanf(“%d”,&n);inta[SIZE];
inta[n];
6.2若有说明:
inta[10];则对a数组元素的正确引用是_________。
A)a[10]B)a[3.5]C)a(5)D)a[10-10]
6.3以下能对一维数组a进行正确初始化的语句是_________。
A)inta[10]=(0,0,0,0,0)B)inta[10]={};
C)inta[]={0};D)inta[10]={10*1};
6.4下面程序中有错误的行是_________(每行程序前面的数字表示行号)
1main()
2{
3inta[3]={1};
4inti;
5scanf(“%d”,&a);
6for(i=1;i<3;i++)a[0]=a[0]+a[i];
7printf(“a[0]=%d\n”,a[0]);
8}
A)3B)6C)7D)5
6.5下面程序_________(每行程序前面的数字表示行号)
1main()
2{
3inta[3]={0};
4inti;
5for(i=0;i<3;i++)scanf(“%d”,&a[i]);
6for(i=1;i<4;i++)a[0]=a[0]+a[i];
7printf(“%d\n”,a[0]);
8}
A)没有错误B)第3行有错误C)第5行有错误D)第6行有错误
6.6对以下说明语句的正确理解是_________。
inta[10]={6,7,8,9,10};
A)将5个初值依次赋给a[1]至a[5]
B)将5个初值依次赋给a[0]至a[4]
C)将5个初值依次赋给a[6]至a[10]
D)因为数组长度与初值的个数不相同,所以此语句不正确
6.7若二维数组a有m列,则在a[i][j]前的元素个数为_________。
A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+1
6.8若有以下程序段:
……
inta[]={4,0,2,3,1},i,j,t;
for(i=1;i<5;i++)
{t=a[i];j=i-1;
while(j>=0&&t>a[j])
{a[j+1]=a[j];j--;}
a[j+1]=t;
……
}
则该程序段的功能是_________。
A)对数组a进行插入排序(升序)