1、第一部分 [试卷描述] <试卷名称>=C语言期末考试试卷A <使用计算器>=0 <允许帮助>=0 [题目描述] 考试说明: 一、本试卷由两大部分组成:选择题(70分)和编程题(30分) 二、选择题为单项选择,即只有一个选项是正确的,直接利用本软件 答题。答题方法和要求是:将你认为正确的答案填入对应的答题区域内(按 对应的字母键);要结束选择题的考试请按ESC键,然后在对话框中选“是” 按钮 三、编程题请在结束选择题考试后作答,答题方法和要求是:按以上 方法结束选择题的考试后,打开考试盘(网络盘K:)“考生文件夹”中文件 名为“编程题”
2、的文件(双击即可),然后按此文件内容提供的信息和要求 答题 一、选择题(每题2分,35题,共70分) 1、一个C语言程序是由( 1 ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 <标准答案>=b [题目描述] 2、下面不属于结构化程序设计的三种基本结构的是( 2 ) A、顺序 B、跳转 C、循环 D、选择 <标准答案>=b [题目描述] 3、下面四个选项中,均是不合法的用户标识符的选项是 ( 3 ) 。 A
3、b-a B、Float C、a2 D、_123 goto P_0 int temp int char 2b double <标准答案>=a [题目描述] 4、若有代数式(3ae)/bc,则不正确的C语言表达式是( 4 )。 A、a/b/c*e*3 B、3*a*e/b/c C、a*e/c/b*3 D、a*e/c/b*3 <标准答案>=b [题目描
4、述] 5、表达式21/4*sqrt(9.0)/4值的数据类型是( 5 )。 A、float B、int C、不确定 D、double <标准答案>=d [题目描述] 6、若希望当字符变量a中为数字字符时,表达式的值为"真",为 非数字字符时,表达式的值为"假"。则以下不能满足要求的表 达式是( 6 )。 A、a>=0 && a<=9 B、a>='0' && a<='9' C、a>=48+0 && a<=48+9 D、a-'0'>=0 && a-'0'<=9
5、 <标准答案>=a [题目描述] 7、以下程序的输出结果是( 7 )。 main() { int a=8; printf("%d\n", (a+=a-=a*a)); } A、0 B、-112 C、-180 D、-48 <标准答案>=b [题目描述] 8、一个C语言的语句至少应包一个( 8 )。 A、{ } B、逗号 C、分号 D、什么不要 <标准答案>=c [题目描述] 9、程序中定义以下宏#define S(a,b) a*b 若定义 int a
6、rea;且令area=S(3+4,5+1),则变量area的 值为( 9 ) 。 A、42 ? B、24 C、25 D、23 <标准答案>=b [题目描述] 10、在C语言中,函数的隐含存储类别是( 10 )。 A、auto B、static C、extern D、无存储类别 <标准答案>=c [题目描述] 11、有如下程序 main() { int i,sum; for(i=1;i<=3;sum++) sum+=i; printf("%d
7、\n",sum);i无变化 } 该程序的执行结果是( 11 ) A、6 B、3 C、死循环 D、0 <标准答案>=c [题目描述] 12、为了避免嵌套的if-else语句的二义性,C语言规定 else总是与( 12 )组成配对关系。 A、缩排位置相同的if B、在其之前未配对的if C、在其之前未配对的最近的if D、同一行上的if <标准答案>=c [题目描述] 13、有以下程序,程序运行后的输出结果是( 13 )。 main() { in
8、t a=15, b=21, m=0; switch (a%3) { case 0: m++; break; case 1: m++; switch (b%2) { default: m++; case 0: m++; break; } } printf(”%d\n”,m); } A、1 B、2 C、3 D、4 <标准答案>=a [题目描述] 14、有以下程序 main( ) {
9、 int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; }while(!i); n++; } printf("n=%d\n",n); } 程序执行后的输出结果是( 14 ) A、n=5 B、n=2 C、n=3 D、n=4 <标准答案>=d [题目描述] 15、假定有以下变量定义
10、 int k=7, x=12; 则能使值为7的表达式是( 15 )。 A、x%k B、k%x C、k/x D、3%k <标准答案>=b [题目描述] 16、以下对C语言函数的有关描述中,正确的是( 16 )。 A、调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B、C函数既可以嵌套定义又可以递归调用 C、函数必须有返回值,否则不能使用函数 D、C程序中有调用关系的所有函数必须放在同一个源程 序文件中 <标准答案>=a [题目描述] 17、有
11、如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是( 17 )。∏记 A、4 B、3 C、5 D、有语法错 <标准答案>=b [题目描述] 18、合法的数组定义是 ( 18 )。 A、char a={'O', 'K', '!'}; B、char a[3]={"O", "K", "!"}; C、char a[4]={'O','K','!'}; D、char a[3]="OK!"; <标准答案>=c [题目描述]
12、19、 以下程序运行后,输出结果是( 19 )。
main()
{
int a[10], a1[ ]={1,3,6,9,10};
int a2[ ]={2,4,7,8,15},i=0,j=0,k;
for(k=0;k<4;k++)
if(a1[i] 13、 A、1234 B、1324
C、2413 D、4321
<标准答案>=a
描述]
?20、若有以下定义和语句:
char *s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
则输出结果是( 20 )
A、4 B、5 C、9 D、10
<标准答案>=a
[题目描述]
21、若有以下数组定义,其中不正确的是( 21 ) 。
A、int a[2][3];
B、int b[][3 14、]={0,1,2,3};
C、int c[100][100]={0};
X D、int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
<标准答案>=d
[题目描述]
22、以下程序输出{的结果是( 22 )。
main( )
{ char w[][10]={"ABCD","EFGH","IJKL","MNOP"}, k;
for (k=0;k<3;k++)
printf("%s\n",&w[k][k]);
}
A、ABCD B、ABCD
15、FGH EFG
KL IJ
M
C、EFG D、FGH
JK KL
O
<标准答案>=a
[题目描述
23、以下程序的输出结果是( 23 )。
main()
{ int i;
for (i=1;i<=5;i++)
{
if(i%2==0) printf("#");
16、 else continue;
printf("*");
}
printf("$\n");
}
A、*#*#*#$ B、#*#*#*$ C、*#*#$ D、#*#*$
<标准答案>=d
[题目描述]
24、若有说明语句:int a, b, c, *d=&c;, 则能正确从键盘读入三个整数
分别赋给变量a、b、c的语句是( 24 )。
A、scanf("%d%d%d",&a,&b,&d); B、scanf("%d%d%d",&a,&b,d);
17、
C、scanf("%d%d%d",a,b,d); D、scanf("%d%d%d",a,b,*d);
<标准答案>=b
[题目描述]
25、若定义:int a=511,*b=&a则printf("%d\n",*b);
的输出结果为( 25)。
A、无确定值 B、a的地址
C、512 D、511
<标准答案>=d
[题目描述]
26、运行下面的程序,如果从键盘上输入:123<空格>456<空格>789<回车>,
输出结果是( 26 )。
A、123,456,789 18、 B、1,456,789
C、1,23,456,789 D、1,23,456
main( )
{
char s[100];
int c, i;
scanf("%c",&c);
scanf("%d",&i);
scanf("%s",s);
printf("%c,%d,%s\n",c,i,s);
}
<标准答案>=d
[题目描述]
27、若有数组定义: char a 19、rray [ ]="China"; 则数组 还有一个”\0”
array所占的空间为( 27 )。
A、4个字节 B、5个字节
C、6个字节 D、7个字节
<标准答案>=c
题目描述]
28、若有以下的定义:
int a[ ]={1,2,3,4,5,6,7,88,9,10}, *p=a;p代表a的地址,
则值为3的表式是( 28 )
A) p+=2, *(p++) B) p+=2,*++p
C) p+=3, *p++ 20、D) p+=2,++*p
<标准答案>=a
[题目描述]
29、以下程序运行后的输出结果是 ( 29 )。
func(int a)
{ auto int b=0;
auto int c=1;
b++; c++;;
return (a+b+c);
}
main( )
{ int x=2, i;
for(i=0; i<3; i++)
printf("%d\n",func(x));
}
A、5 B、5 21、 C、5 D、5
8 7 6 5
11 9 7 5
<标准答案>=d
[题目描述]
30、若已定义:
int a[]={0,2,4,6,8,10,12,14,16,18},*p=a, i;
(i在0至9的范围),以下对a数组元素的引用不正确
的是( 30 )
A、a[p-a] ? B、*(&a[i])
C、p[i] D、*(*(a+i) 22、)
<标准答案>=d
[题目描述]
31、以下程序的输出结果是( 31 )
main()
{ int *p;
int a[5]={2, 6, 8, 7, 1};
p=a;
printf("%d %d %d\n", a[p-a], *p++, *++p);
}
A、8 6 6 B、2 2 8
C、2 6 8 D、6 8 6
<标准答案>=a
[题目描述]
32、下面程序 23、的功能是计算正整数2345的各位数字平方和,
请选择填空。
填第一空(32 ):
#include 24、D、(n/10)*(n/10)
<标准答案>=b
[题目描述]
33、下面程序的功能是计算正整数2345的各位数字平方和,
请选择填空。
填第二空( 33 ):
#include 25、 A、n/1000 B、n/100
C、n/10 D、n%10
<标准答案>=c
[题目描述]
?34下面程序的功能是求出用数字1、3、5、7可以组成多少个
没有重复的三位数,且每行控制输出4个数。请选择填空。
填第一空( 34 ):
main()
{ int i, j, k, count=0;
for(i=1; i<=7; i=i+2)
for(j=1;j<=7; j=j+2)
for(k=1;k<=7; k=k+2)
if 26、 34 )
{ printf("%5d", i*100+j*10+k);
count++;
if( 35 ) printf("\n"); }
}
A、(i!=j!=k) B、(i!=j && i!=k && j!=k)
C、(i!=j && i!=k) D、(i!=j || i!=k || j!=k)
<标准答案>=b
[题目描述]
35、下面程序的功能是求出用数字1、3、5、7可以组成多少个
没有重复的三位数,且每行控制输出4 27、个数。请选择填空。
填第二空( 35 ):
main()
{ int i, j, k, count=0;
for(i=1; i<=7; i=i+2)
for(j=1;j<=7; j=j+2)
for(k=1;k<=7; k=k+2)
if( 34 )
{ printf("%5d", i*100+j*10+k);
count++;
if( 35 ) printf("\n"); 28、}
}
A、count/4==0 B、count%4
C、count%4==0 D、count/4
标准答案>=c
选择题:
1、下面不属于结构化程序设计的三种基本结构的是_______ 。
A、顺序结构 B、跳转结构 C、循环结构 D、选择结构
<标准答案>=b
[题目描述]
2、下列各组字符序列中,可用作C语言程序标识符的是_______。下划线&字母可以作为首
29、 A、12abc B、 abc$12
C、abc%% D、 _abc12
<标准答案>=d
[题目描述]
3、C语言中的简单数据类型包括 _______ 。
A、整型、实型、逻辑型
B、整型、字符型、逻辑型
C、整型、实型、字符型
D、整型、实型、逻辑型、字符型
<标准答案>=c
[题目描述]
4、下列符号中,不属于转义字符的是 _______ 。
A.\0xAA B.\\ C.\t 30、 D.\0
<标准答案>=a
[题目描述]
5、已知各变量的类型说明如下:
int m=8,n, a, b;
unsigned long w=10;
double x=3.14159, y=0.12;
则以下符合C语言语法的表达式是_______。
A.a+=a-=(b=2)*(a=8) B.n=n*3=18
C.x%3 D.y=float (m)
<标准答案>=a
[题目描述]
6、假设所有变量均为整型,则表达式(x 31、2, y=5, y++, x+y)的 在计算x+y之前,y已经自家一了
值是_______。
A.2 B.6 C.7 D.8
<标准答案>=d
[题目描述]
7、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是____。
printf(%d,%d\n",x--,--y);
A、10,3 B、10,2 C、9,2 D、9,3
<标准答案>=b
[题目描述]
8、以下程序段的输出结果是______。
float a=12345.98;
32、printf("%5.2f\n",a);
A、12345.98 B、12345
C、45.98 D、提示出错、无结果
<标准答案>=a
[题目描述]
9、putchar函数可以向终端输出一个______。
A.整型变量表达式值 B.字符串
C.字符或字符型变量值 D.实型变量值
<标准答案>=c
[题目描述]
10、有如下程序段,从键盘输入数据的正确形式应是________。
(注:└┘代表空格)
float x,y,z 33、
scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);
A.123 B.x=1,y=2,z=3
C.1,2,3 D.x=1└┘y=2└┘z=3
<标准答案>=b
[题目描述]
11、在C语言中,if(a)语句,当a的值为_____ 时
不执行if后面的语句。
A、-1 B、0.1 C、1 D、0
<标准答案>=d
[题目描述]
12、已知:char ch='q';则下列表达式的值是______ 下式是对的, 34、故选左边的
ch = (ch>='a'&&ch<='z') ? (ch-32) : ch;
A、a B、Q C、q D、z
<标准答案>=b
[题目描述]
13、以下程序的输出结果是_______。
main()
{int a=10,b;
b=++a;b+=a;
printf(" %d",b);
b=a--;
b+=a;
printf(" %d",b);
}
A、20 21 B、22 21
C、21 22 D、21 35、 20
<标准答案>=b
[题目描述]
14、已知int a=1,b=2,c=3; 以下语句执行后a,b,c的值是_____。
if(a>b) 他们是一起的,下面的是另外的
c=a; a=b; b=c;
A.a=2, b=3, c=3 B.a=1, b=2, c=3
C.a=2, b=3, c=1 D.a=2, b=3, c=2
<标准答案>=a
[题目描述]
15、有以下程序,若输入为字符s,则程序运行结果为_______。
#include "stdio.h"
36、main()
{ char ch;
ch=getchar();
switch (ch)
{ case 'a': printf("a=%c\n",ch);
default: printf("end!\n");
case 'b': printf("b=%c\n",ch);
case 'c': printf("c=%c\n",ch);
}
}
A.end! B.end! C.有语法错误 D.a=s
b=s 37、 end!
c=s
<标准答案>=a
[题目描述]
16、设a为int型变量,则能正确表达数学关系-1a >-1 X B、!(a>-1 && a<10)
C、-1=c
[题目描述]
17、以下程序的输出结果是________。
main()
{ int n=2;
while (n--)
printf("%d",--n);
}
A. 1-1 B. 10 38、 C. 21 D. 0
<标准答案>=d
[题目描述]
18、当执行以下程序段时,_________。
x=-1;
do
{x=x*x;}
while (!x);
A.循环体将执行一次 B.循环体将执行两次
C.循环体将执行无数多次 D.系统将提示有语法错误
<标准答案>=a
[题目描述]
19、以下程序的输出结果是_______。
main()
{ int i;
for (i=1;i<=5;i++)
{
if(i%2 39、)
printf("#");
else
continue;
printf("*");
}
printf("$\n");
}
A、*#*#*#$ B、#*#*#*$ C、*#*#$ D、#*#*$
<标准答案>=b
[题目描述]
20、若i,j已定义为int类型,则以下程序段中内循环的总的执行
次数是________。
for (i=3;i;i--)
for (j=0;j<2;j++)
{…}
A.12 B.9 C.6 40、 D.2
<标准答案>=c
[题目描述]
21、在以下给出的表达式中,与do-while(E)语句中的(E)不等价的
表达式是_______。
A. (E==0) B. (E>0||E<0)
C. (!E==0) D. (E!=0)
<标准答案>=a
[题目描述]
22、C语言中规定函数的返回值类型是由_______。
A、调用该函数时的主调函数类型所决定的
B、调用该函数时所定义的调函数类型所决定的
C、调用该函数时 41、系统临时决定的
D、return 语句中的表达式类型所决定的
<标准答案>=b
[题目描述]
23、在C语言中,形参的缺省存储类型是________
A、auto B、register
C、static D、extern
<标准答案>=a
[题目描述]
24、在一个源程序文件中定义的全局变量的有效范围是______。
A. 本源程序文件的全部范围
B. 一个C程序的所有源程序文件
C. 函数内全部范围
D. 从定义变量的位置开始到源程序文件结束
<标准答案>=d
42、[题目描述]
25、以下程序的输出结果是_______。
fun(int x, int y, int z)
{
z=x*x+y*y;
}
main()
{
int a=12;
fun(4,7,a);
printf("%d",a);
}
A. 无确定值 B. 0
C. 12 D.28
<标准答案>=c
[题目描述]
26、以下程序的输出结果是________
f(int 43、 b[],int m,int n)
{ int i,s=0;
for(i=m;i 44、b=3;
printf("%d \n",MA(1+a+b));
}
A. 10 B. 18 C. 24 D. 35
<标准答案>=b
[题目描述]
28、若有定义: char s[200];则数组上、下标为______。
A、0,199 B、1,200
C、200,1 D、199,0
<标准答案>=a
[题目描述]
29、以下程序段的输出结果是_______ 。
Char s[]="abcd\'";
printf("%d 45、\n",strlen(s));求其子数?
A、8 B、7 C、6 D、5
<标准答案>=d
[题目描述]
30、合法的数组定义是 _______。
A、char a[]={'O', 'K', '!'}; B、char a[3]={"O", "K", "!"};
C、char a={'O','K','!'}; D、char a[3]="OK!";
<标准答案>=a
[题目描述]
31、以下程序的输出结果是________。
main()
{
int i, a[10];
46、 for(i=9;i>=0;i--)
a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A. 258 B. 741
C. 852 D. 369
<标准答案>=c
[题目描述]
32、有以下程序
main( )
{
int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++) s+=a[i][j];
p 47、rintf("%d\n",s);
}
该程序的输出结果是_________。
A.21 B. 20 C. 19 D. 18
<标准答案>=d
[题目描述]
33、若定义:int a=155,*b=&a,则printf("%d\n",*b);语句
的输出结果为_______。
A、无确定值 B、a的地址 C、156 D、155
<标准答案>=d
[题目描述]
34、以下程序的输出结果是_____ 。
main()
{int a[]={1,2,3,4,5,6,7,8,9,1 48、0};
int *p;
p=a;
printf("%d ",*p++);
printf("%d\n",*p++);
}
A、1 2 B、1 1 C、2 3 D、2 2
<标准答案>=a
[题目描述]
35、以下程序的输出结果是_______
main()
{char b[]="computer!";
char *p=b;
printf("%c ",*(b+3));
p=p+8;
printf("%c\n",*p++);
}
A、3 8 B、m r C、p ! 49、 D、m !
<标准答案>=c[试卷描述]
一、选择题(每题2分,35题,共70分)
1、C语言中,复合语句的构成是将一系列语句置于( 1 )。
A、begin与end之间 B、方框号“[ ]”之间
C、花括号“{ }”之间 D、圆括号“( )”之间
<标准答案>=c
[题目描述]
2、以下叙述不正确的是( 2 )
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
<标准答案>=d
50、
[题目描述]
3、下面四个选项中,均是合法的用户标识符的选项
是 ( 3 ) 。
A、b_a B、Float C、begin D、_123
goto a2 int temp
long Char bird double
<标准答案>=b
[题目描述]
4、下面四个选项中,均是不正确的八进制数或
十六进制数的选项是( 4 )。
A、016






