样卷.docx
《样卷.docx》由会员分享,可在线阅读,更多相关《样卷.docx(16页珍藏版)》请在冰豆网上搜索。
样卷
一、单选题(每题2分,共30分)
1、已知i、j、k为int型变量,若从键盘输入:
i=1,j=2,k=3↙,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。
A、scanf("%d,%d,%d",&i,&j,&k);
B、scanf("%d%d%d",&i,&j,&k);
C、scanf("%2d%2d%2d",&i,&j,&k);
D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);
参考答案:
D
2、以下程序的结果是______。
inta,b;
voidfun()
{a=100;b=200;}
main()
{inta=5,b=7;
fun();
printf("%d%d\n",a,b);
}
A、75B、57
C、200100D、100200
参考答案:
B
3、以下程序段的输出结果是:
______。
chars[]="\\120\141mn\n";
printf("%d\n",strlen(s));
A、14B、9C、7D、8
参考答案:
D
4、#include
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是______。
A、1267B、1278
C、1256D、1245
参考答案:
D
5、有以下程序
main()
{chark;inti;
for(i=1;i<3;i++)
{scanf("%c",&k);
switch(k)
{case'0':
printf("another\n");
case'1':
printf("number\n");
}
}
}
程序运行时,从键盘输入:
01↙,程序执行后的输出结果是______。
A、number
numberB、another
numberanother
C、another
number
numberD、another
number
参考答案:
C
6、以下四个程序中,完全正确的是______。
A、#include
main();
{
/*programming*/
printf("programming!
\n");
}
B、include
main()
{
/*/*programming*/*/
printf("programming!
\n");
}
C、#include
main()
{
/*programming*/
printf("programming!
\n");
}
D、#include
main()
{
/*/programming/*/
printf("programming!
\n");
}
参考答案:
C
7、设a=5、b=6、c=7、d=8、m=2、n=2,执行
(m=ad)
后n的值为______。
A、3
B、2
C、1
D、4
参考答案:
B
8、程序中头文件type1.h的内容是:
#defineN5
#defineM1N*3
程序如下:
#include"type1.h"
#defineM2N*2
main()
{inti;
i=M1+M2;printf("%d\n",i);
}
程序编译后运行的输出结果是______。
A、20B、10C、25D、30
参考答案:
C
9、设有以下语句,其中不是对a数组元素的正确引用的是:
______(其中0≤i<6)
inta[6]={11,22,33,44,55,66},*m=a;
A、a[i]
B、*(&a[i])
C、m[i]
D、&(*(a+i))
参考答案:
D
10、以下的for循环:
for(m=0,n=0;(n!
=23)&&(m<5);m++);
A、是无限循环
B、执行5次
C、循环次数不定
D、执行3次
参考答案:
B
11、有如下定义
structperson{charname[9];intage;};
structpersonclass[10]={"John",17,
"Paul",19,
"Mary",18,
"Adam",16,};
根据上述定义,能输出字母M的语句是______。
A、printf("%c\n",class[3].name[1]);
B、printf("%c\n",class[3].name);
C、printf("%c\n",class[2].name[1]);
D、printf("%c\n",class[2].name[0]);
参考答案:
D
12、阅读以下程序
main()
{intx;
scanf("%d",&x);
if(x--<5)printf("%d\n",x);
elseprintf("%d\n",x++);
}
程序运行后,如果从键盘上输入5,则输出结果是______。
A、3B、6C、5D、4
参考答案:
D
13、已有文本文件test.txt,其中的内容为:
everyone!
。
以下程序中,文件test.txt已正确为"读"而打开,由文件指针fr指向该文件,则程序的输出结果是___________。
#include
main()
{FILE*fr;chars[80];
……
fgets(s,5,fr);
printf("%s\n",s);
fclose(fr);}
A、everB、every
C、everyoD、everyone!
参考答案:
A
14、有以下程序
#include
voidWriteStr(char*fn,char*str)
{FILE*fp;
fp=fopen(fn,"w");
fputs(str,fp);
fclose(fp);
}
main()
{
WriteStr("t1.dat","start");
WriteStr("t1.dat","end");
}
程序运行后,文件t1.dat中的内容是______。
A、startendB、end
C、startD、endrt
参考答案:
B
15、以下关于long、int和short类型数据占用内存大小的叙述中正确的是______。
A、由用户自己定义
B、根据数据的大小来决定所占内存的字节数
C、均占4个字节
D、由C语言编译系统决定
参考答案:
D
二、填空题(每题2分,共40分)
1、字符读写函数____________是用于把一个字符写入磁盘文件。
参考答案:
fputc#fputc()#putc#putc()
2、C语言中的关键字共有32个,而且都是________写。
提示:
大/小
参考答案:
小
3、在C语言中,从参数的形式看,函数可以分为两类:
无参函数和____________函数。
参考答案:
有参
4、在C语言中,如果采用printf函数将整个字符串一次输出,那么对应的格式控制符为"________"。
参考答案:
%s
5、结构化程序设计的3种基本结构是:
顺序结构、_______结构、循环结构。
而且正是这三种基本结构构成了复杂的C语言程序。
参考答案:
选择#分支
6、在C语言中,关系运算符中的"大于等于"表示为________。
参考答案:
>=
7、在C语言数据类型中,一个双精度型变量所占字节数是____。
参考答案:
8
8、在C语言中,每个变量都具有存储类别属性。
存储类别是指数据在内存中存储的方法。
并且存储方法分为_______类。
参考答案:
2#两
9、在C语言中,将字符串中大写字母转换成小写字母的函数是_____________。
参考答案:
strlwr#strlwr()#strlwr(字符串)
10、在C语言中,对一维整型数组初始化时如果只给一部分元素赋初值,那么其他元素值均为____________。
参考答案:
0#零
11、以下程序的输出结果为___________。
#include
main()
{charc,d;
c=getchar();/*(输入d)*/
d=c-33;
printf("%c",d);}
参考答案:
C
12、执行下列程序段后,输出的a的值是_____________。
main()
{inta=1;
switch(a)
{case0:
a--;break;
case1:
a++;break;
case2:
a=a+5;break;}
printf("%d",a);}
参考答案:
2
13、已知"float x=0.5;int y=13;",则算术表达式"x+y/5"的值是_________。
参考答案:
2.5#2.500000
14、下列程序段的运行结果是_____。
floatb=80,*q;
q=&b;
printf("%f",*q);
参考答案:
80.000000#80.0
15、以下程序的输出结果是_____________。
main()
{floatx;
printf("%.4f\n",(x=2*4,x+0.5));}
参考答案:
8.5000
16、下列程序段的运行结果是_____。
voidgun()
{floatx=3.0;}
main()
{floatx=1.0;
gun();
printf("x=%f",x);}
参考答案:
x=1.000000#x=1.0
17、有以下程序
#include
main()
{chara[]={'a','b','\0'};intj;
j=strlen(a);
printf("%d\n",j);}
程序运行后的输出结果是______。
参考答案:
2
18、已知charstr[]="happy!
",则strlen(str)的值为_____。
参考答案:
6
19、执行下列的程序段后,正确的结果是_____________。
intt=2;
while(t=8)
t--;printf("%d",t);
参考答案:
无限循环#死循环
20、下列程序段的运行结果是_____。
main()
{inta=5,b=6,c;
intsub(int,int);
c=sub(a,b);
printf("%d\n",c);}
intsub(intx,inty)
{intz;
z=x-y;
returnz;}
参考答案:
-1
三、是非题(每题0.5分,共10分)
1、使用strcpy(字符数组,字符串)函数时,字符串后面的'\0'并没有一起拷贝到字符数组中。
参考答案:
否
2、如果在共用体中有若干个不同类型的成员,在每一瞬间只有一个成员起作用,实际上是最后一个存放成员起作用。
参考答案:
是
3、当函数的类型为int型时,TurboC允许省略函数声明。
参考答案:
是
4、C程序中的变量一定要先定义后使用。
参考答案:
是
5、switch语句中的case和default的出现次序不可以是任意的。
参考答案:
否
6、指针变量定义后可以指向任何类型的不同变量。
参考答案:
否
7、C语言中字符型变量的存储单元中存放的是该字符的ASCII码值。
参考答案:
是
8、如果字符串常量所包含的字符个数等于数组长度,则在整体输出字符数组中的字符串时,会跟出一些不可预见的字符。
参考答案:
是
9、全局变量本身就是静态存储方式
参考答案:
是
10、C语言中输入与输出操作都是由自定义函数来实现的。
参考答案:
否
11、C语言中浮点型常量指数法形式中字母e或E之前必须有数字。
参考答案:
是
12、break语句不能跳出多层循环
参考答案:
是
13、C语言对文件读、写之前不必先打开文件,在使用文件之后无需关闭该文件。
参考答案:
否
14、在if和else后面可以只含有一个内嵌的操作语句,也可以含有多个操作语句,此时应用花括号"{}"将几个语句括起来,构成一个复合语句。
参考答案:
是
15、在多层循环中,continue语句就是终止整个循环的执行。
参考答案:
否
16、在定义指针变量时如果不为其赋初值,则它的值是不确定的。
参考答案:
是
17、若函数体内没有return语句,程序的流程就执行到函数体的末尾,然后返回到调用函数。
这时带回一个不确定的函数值。
参考答案:
是
18、结构体的各个成员各自占用自己的存储单元,各有自己的地址,各个成员所占的存储单元的总和一般就是结构体的长度。
参考答案:
是
19、C程序是由函数构成的,其中可以有一个或多个主函数main()。
参考答案:
否
20、要使用标准输入、输出函数,正常情况下应该在文件的开头加上以下内容:
#include或#include"stdio.h"。
参考答案:
是
四、C程序设计(每题10分,共20分)
1、给定程序modi.c中,函数fun的功能是:
求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
2、程序定义了N×N的二维数组,并在主函数中自动赋值。
请编写函数fun(inta[][N],intn),函数的功能是:
使数组上半三角元素中的值乘以m。
例如:
若m的值为2,a数组中的值为
|197||21814|
a=|238||2616|
|456||4512|
注意:
部分源程序存在文件prog.c中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#defineN3
fun(inta[][N],intn)
{
}
voidmain()
{inta[N][N]={1,9,7,2,3,8,4,5,6},m;
scanf(“%d”,&m);
fun(a,m);
for(i=0;i{for(j=0;jprintf(“%4d”,a[i][j]);
printf(“\n”);
}
}