C语言程序设计试卷1含答案Word下载.doc
《C语言程序设计试卷1含答案Word下载.doc》由会员分享,可在线阅读,更多相关《C语言程序设计试卷1含答案Word下载.doc(13页珍藏版)》请在冰点文库上搜索。
b'
-32);
C)putchar(98-32);
D)putchar(B);
5.在C语言中,数值常量0x9f对应十进制值是【】。
A)160 B)87 C)9f D)159
6.整型变量a定义后赋初值的结果是【】。
inta=2.8*6;
A)12 B)16 C)17 D)18
7.将小写字母n赋值给字符变量one_char,正确的操作是【】。
A)one_char=’\n’;
B)one_char=”n”;
C)one_char=110;
D)one_char=’N’;
8.若有以下说明和语句,则输出结果是【】。
chars[10]="
atest!
"
;
printf("
%d"
,strlen(s));
A)6 B)8 C)7 D)9
9.下面的程序结果为:
【】。
main()
{
inta;
printf("
%d\n"
,(a=3*5,a*4,a+5));
}
执行完输出函数后,a的值是【】。
A)65 B)20 C)15 D)10
10.下列运算附中,优先级最低的是【】。
A)&
B)&
&
C)^D)|
11.C语言的下列运算符中,运算对象必须是整型数据的是【】。
A)%B)/ C)&
D)*
12.设有以下语句:
intx=10;
x+=3+x%(-3),则x的值是【】。
A)14 B)15 C)11D)12
13.下面程序的输出结果是【】。
main()
{
inta=-1,b=4,k;
clrscr();
k=(a++<
=0)&
(!
(b--<
=0));
printf("
%d,%d,%d\n"
,k,a,b);
}
A)1,1,2 B)1,0,3 C)0,1,2 D)0,0,3
14.下面哪个表达式的值为4【】。
A)11/3 B)11.0/3
C)(float)11/3 D)(int)(11.0/3+0.5)
15.下列程序的运行结果是【】。
main()
{
intx=0,y=1,z=0;
if(x=z=y)
x=3;
printf(“%d,%d\n”,x,z);
}
A)3,0 B)0,0 C)0,1 D)3,1
16.下面程序的输出结果是【】。
{ intx=2,y=-1,z=2;
if(x<
y)
if(y<
0)z=0;
elsez+=1;
printf(“%d\n”,z);
A)3 B)1 C)2 D)0
17.运行下面程序,若从键盘输入“3”和“5”,则程序的输出结果是【】。
main()
{intx,y;
scanf(“%d,%d”,&
x,&
y);
if(x==y)
printf(“x==y”);
elseif(x>
printf(“x>
y”);
else
printf(“x<
A)3<
5 B)5>
3 C)x>
y D)x<
y
18.若有条件表达式x?
a++:
b--,则以下表达式中能完全等价于表达式x的是【】。
A)(x==0) B)(x!
=0) C)(x==1) D)(x!
=1)
19.结构化程序设计的三种基本结构是【】。
A)顺序结构、选择结构、循环结构 B)顺序结构、转移结构、递归结构
C)嵌套结构、选择结构、递归结 D)嵌套结构、循环结构、顺序结构
20.下面的程序
{
inti;
for(i=0;
i<
10;
i++);
printf("
,i);
}
的输出结果是【】。
A)0 B)123456789 C)0123456789 D)10
21. do语句的循环次数为【】。
inta=10;
do{a--;
}while(a!
=0)
A)10 B)9 C)11 D)12
22.下面程序段的运行结果是【】。
intn=0;
while(n++<
=2);
printf(“%d”,n);
A)2 B)3 C)4 D)出错信息
23.对以下程序段的叙述正确的是【】。
intk=0;
while(k=0)k=k-1;
A)while循环之行10次 B)无线循环
C)循环体一次也不执行 D)循环体被执行一次
24.下面程序的运行结果是【】。
main()
{inti,b,k=0;
for(i=1;
=5;
i++)
{ b=i%2;
while(b-->
=0)k++;
}
printf(“%d,%d\n”,k,b);
A)3,-1B)8,-1C)3,0D)8,-2
25.以下不正确的定义语句是【】。
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'
26.以下不能对二维数组a进行正确初始化的语句是【】。
A)inta[2][3]={0};
B)inta[][3]={{1,2},{0}};
C)inta[2][3]={{1,2},{3,4},{5,6}};
D)inta[][3]={1,2,3,4,5,6};
27.下面的程序运行时,若从键盘输入Whatdoes<
CR>
thisword<
mean?
<
则输出Whatdoesthiswordmean?
请将程序填完整。
#include<
stdio.h>
main()
{chars1[10],s2[10],s3[10],s4[10];
scanf("
%s%s\n"
s1,s2);
【】;
%s"
s4);
printf("
%s%s%s%s\n"
s1,s2,s3,s4);
}
A)gets(s3);
B)scanf("
%s\n"
s3);
C)scanf("
D)getchar(s3);
28.设有说明char*a="
Nosmoking!
;
则以下不能正确输出的语句是【】。
A)printf("
%s"
&
a);
B)printf("
a);
C)puts(a);
D)puts("
);
29.以下程序的输出结果是【】。
#include<
string.h>
main()
{charstr[12]={'
s'
t'
r'
i'
n'
g'
’\0’};
printf("
strlen(str));
}
A)12B)11C)7D)6
30.以下程序的输出结果是【】。
{inti,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;
3;
i++)printf("
%d,"
x[i][2-i]);
A)1,5,9,B)1,4,7,C)3,5,7,D)3,6,9,
31.若有说明intx;
则下面判断不正确的是【】。
A)x和(&
x)[0]等价B)x和*&
x等价C)&
x和x[0]等价D)*&
x和(&
x)[0]等价
32.下面说明不正确的是【】。
A)chara[10]="
china"
B)chara[10],*p=a;
p="
C)char*a;
a="
D)chara[10],*p;
p=a="
33.设己定义staticinta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;
其中0<i<9,则对a数组元素的引用不正确的是【】。
A)p[p–a]B)*(&a[i])C)p[i]D)*(*(a+i))
34.若有以下定义和语句:
ints[4][5],(*ps)[5];
ps=s;
则下列叙述中不正确的是【】。
A)ps+1与ps[1]等价B)*(ps+1)与ps[1]等价
C)ps[1][1]与*(*(ps+1)+1)等价D)**(ps+1)与ps[1][1]等价
35.C语言规定,函数返回值的类型是由【】。
A)return语句的表达式类型所决定
B)调用该函数时的主调函数类型所决定
C)调用该函数时系统临时决定
D)在定义该函数时所指定的函数类型所决定
36.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是【】。
A)地址传递B)单向值传递
C)由实参传给形参,再由形参传回实参D)传递方式由用户指定
37.请读程序:
fun(char*s)
{char*p=s;
while(*p!
='
\0'
)
p++;
return(p-s);
{printf(“%d\n”,fun(“abcdef”));
上面输出结果是【】。
A)3B)6C)8D)0
38.在一个C源程序文件中,若要定义一个只允许在该源程序文件中所有函数使用的变量,则该变量需要的存储类别是【】。
A)static B)extern
C)register D)auto
39.以下程序的输出结果是【】。
intf()
{staticinti=0;
ints=1;
s+=i;
i++;
returns;
{inti,a=0;
for(i=0;
5;
i++)
a+=f();
printf("
,a);
A)20B)24C)25D)15
40.若定义enumcolor{red,green,blue,purple,yellow,black,orange}cl;
,执行语句c1=green+blue;
后,以下选项中cl的结果正确的是【】。
A)greenblueB)purpleC)yellowD)编译出错
41.使用typedef定义一个新类型的正确步骤是【】。
1.把变量名全部删除换成一个新类型名
2.按定义变量的方法写出定义体
3.用新类型名定义变量
4.在最前面加上关键字typedef
A)2,3,1,4 B)1,3,2,4 C)2,1,4,3 D)4,2,3,1
42.为了显示一个文本文件的内容,在打开文件时,文件的打开方式应当是【】。
A)“r+”B)“w+”C)“wb+”D)“ab+”
43.在进行文件操作时,写文件的一般含义是【】。
A)将计算机内存中的信息存入磁盘B)将磁盘中的信息存入计算机内存
C)将计算机CPU中的信息存入磁盘D)将磁盘中的信息存入计算机CPU
44.已知函数的调用形式:
fread(buffer,size,count,fp);
其中buffer代表的是【】。
A)一个整型变量,代表要读入的数据项总数
B)一个文件指针,指向要读入的文件
C)一个指针,指向要存放读入数据的首地址
D)一个存储区,存放要读入的数据项
45.若调用fputc函数输出字符成功,则其返回值是【】。
A)输出的字符B)0C)1D)EOF
46.当读写二进制文件,没到文件末尾时,feof函数的值是【】。
A)非零值B)0C)1D)TRUE
47.编译预处理命令不可以放在【】。
A)源文件末尾B)函数内部C)函数外部D)源程序文件的开头
48.下列程序的运行结果是【】。
#defineN2
#defineMN+2
#defineCUBE(x)(x*x*x)
{inti;
i=CUBE(M);
i);
}
A)12 B)53C)64D)41
49.下列程序的运行结果是【】。
#defineM3
#defineNM+1
#defineNNN*N/2
{printf("
5*NN);
A)17 B)18 C)30D)40
50.以下程序段的输出结果是【】。
{chars[]="
\\141\141abc\t"
printf("
strlen(s));
A)9B)12C)13D)14
二、阅读程序题(每空2分,共24分)
请将正确答案按【 】中的序号写入文字答题卡,否则不得分。
1.执行下面程序段后,x的值是【51】;
i的值是【52】。
inti,x;
for(i=1,x=1;
i<
=50;
i++)
{ if(x>
=10) break;
if(x%2==1)
{ x+=5;
continue;
}
x-=3;
2.以下程序数据顺序输入为:
86541回车,则的输出结果是【53】。
{inti,b[5];
5;
scanf("
&
b[i]);
for(i=4;
i>
-1;
i--)
%5d"
b[i]);
\n"
3.下列程序的输出结果是【54】。
{inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
%d,%d\n"
*(*a+2),*a[2]);
4.下列程序的输出结果是【55】。
{inta[5]={12,21,13,6,18};
int*p,*s;
for(p=a,s=a;
p-a<
p++)
if(*p>
*s)s=p;
*s);
5.下列程序的输出结果是【56】。
{char*a="
IloveChina!
a=a+7;
%s\n"
a);
6.有如下程序,该程序的输出结果是【57】。
main()
{charch[2][5]={“6937”,”8254”},*p[2];
inti,j,s=0;
for(i=0;
2;
i++)p[i]=ch[i];
for(j=0;
p[i][j]>
’\0’;
j+=2)
s=10*s+p[i][j]-’0’;
printf(“%d\n”,s);
}
7.以下程序则输出结果是
f(inta)
{intb=0;
staticintc=3;
b++;
c++;
return(a+b+c);
{inta=2,i;
,f(a));
【58】
【59】
8.下列程序的输出结果是【60】。
intb=2;
intfunc(int*a)
{b+=*a;
return(b);
{inta=2,res=2;
res+=func(&
a);
%d\n"
,res);
9.以下程序的输出结果是【61】。
intd=1;
func(intp)
{intd=7;
d=p;
printf(“%d”,d);
return(d);
{inta=3;
printf(“%d\n”,func(a+func(d)));
10.以下程序的输出是【62】。
structst
{intx;
int*y;
}*p;
intdt[4]={10,20,30,40};
structstaa[4]={50,&
dt[0],60,&
dt[1],70,&
dt[2],80,&
dt[3]};
{p=aa;
printf("
,++p->
x);
三、完善程序填空题(每空2分,共26分)
1.求1~100以内能被3整除且含数字5的数
stdio.h>
{ inti,a,b,c;
for(i=1;
100;
{a=i%10;
b=i/10;
if(【63】)
printf("
%d\t"
}}
2.以下程序输入了20个数存放在一个数组中,并且输出其中最大者与最小者、,20个数的和及它们的平均值。
请填空。
voidmain()
{chararray[20];
intmax,min,average,sum=0;
inti;
for(i=0;
20;
{
请输入第%d个数:
i+1);
array[i]);
max=array[0];
min=array[0];
=19;
{if(max<
array[i])
【64】;
if(min>
【65】;
sum=【66】;
average=sum/20;
20个数中最大值是%d,"
max);
最小值是%d,"
min);
和是%d,"
sum);
平均值是%d.\n"
average);
3.下面程序的功能是:
将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。
请