资源描述
第一部分
[试卷描述]
<试卷名称>=C语言期末考试试卷A
<使用计算器>=0
<允许帮助>=0
[题目描述]
考试说明:
一、本试卷由两大部分组成:选择题(70分)和编程题(30分)
二、选择题为单项选择,即只有一个选项是正确的,直接利用本软件
答题。答题方法和要求是:将你认为正确的答案填入对应的答题区域内(按
对应的字母键);要结束选择题的考试请按ESC键,然后在对话框中选“是”
按钮
三、编程题请在结束选择题考试后作答,答题方法和要求是:按以上
方法结束选择题的考试后,打开考试盘(网络盘K:)“考生文件夹”中文件
名为“编程题”的文件(双击即可),然后按此文件内容提供的信息和要求
答题
一、选择题(每题2分,35题,共70分)
1、一个C语言程序是由( 1 )
A、一个主程序和若干子程序组成 B、函数组成
C、若干过程组成 D、若干子程序组成
<标准答案>=b
[题目描述]
2、下面不属于结构化程序设计的三种基本结构的是( 2 )
A、顺序
B、跳转
C、循环
D、选择
<标准答案>=b
[题目描述]
3、下面四个选项中,均是不合法的用户标识符的选项是 ( 3 ) 。
A、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
[题目描述]
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
<标准答案>=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 area;且令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\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()
{ int 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( )
{ 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、假定有以下变量定义
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、有如下函数调用语句
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
[题目描述]
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]<a2[j]) a[k]=a1[i++];
else a[k]=a2[j++];
for(k=0;k<4;k++)
printf("%d",a[k]);
}
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]={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
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("#");
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);
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 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 array [ ]="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++ 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 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))
<标准答案>=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、下面程序的功能是计算正整数2345的各位数字平方和,
请选择填空。
填第一空(32 ):
#include <stdio.h>
main()
{ int n, sum=0;
n=2345;
do
{ sum=sum+( 32 );
n=( 33 );
}while(n);
printf("sum=%d",sum);
}
A、n%10 B、(n%10)*(n%10)
C、n/10 D、(n/10)*(n/10)
<标准答案>=b
[题目描述]
33、下面程序的功能是计算正整数2345的各位数字平方和,
请选择填空。
填第二空( 33 ):
#include <stdio.h>
main()
{ int n, sum=0;
n=2345;
do
{ sum=sum+( 32 );
n=( 33 );
}while(n);
printf("sum=%d",sum);
}
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( 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个数。请选择填空。
填第二空( 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"); }
}
A、count/4==0 B、count%4
C、count%4==0 D、count/4
标准答案>=c
选择题:
1、下面不属于结构化程序设计的三种基本结构的是_______ 。
A、顺序结构 B、跳转结构 C、循环结构 D、选择结构
<标准答案>=b
[题目描述]
2、下列各组字符序列中,可用作C语言程序标识符的是_______。下划线&字母可以作为首
A、12abc B、 abc$12
C、abc%% D、 _abc12
<标准答案>=d
[题目描述]
3、C语言中的简单数据类型包括 _______ 。
A、整型、实型、逻辑型
B、整型、字符型、逻辑型
C、整型、实型、字符型
D、整型、实型、逻辑型、字符型
<标准答案>=c
[题目描述]
4、下列符号中,不属于转义字符的是 _______ 。
A.\0xAA B.\\ C.\t 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=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;
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;
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';则下列表达式的值是______ 下式是对的,故选左边的
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 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"
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 end!
c=s
<标准答案>=a
[题目描述]
16、设a为int型变量,则能正确表达数学关系-1<a<10的表达式是___。
A、10>a >-1 X B、!(a>-1 && a<10)
C、-1<a && a<10 D、-1<a || a<10
<标准答案>=c
[题目描述]
17、以下程序的输出结果是________。
main()
{ int n=2;
while (n--)
printf("%d",--n);
}
A. 1-1 B. 10 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)
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 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、调用该函数时系统临时决定的
D、return 语句中的表达式类型所决定的
<标准答案>=b
[题目描述]
23、在C语言中,形参的缺省存储类型是________
A、auto B、register
C、static D、extern
<标准答案>=a
[题目描述]
24、在一个源程序文件中定义的全局变量的有效范围是______。
A. 本源程序文件的全部范围
B. 一个C程序的所有源程序文件
C. 函数内全部范围
D. 从定义变量的位置开始到源程序文件结束
<标准答案>=d
[题目描述]
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 b[],int m,int n)
{ int i,s=0;
for(i=m;i<n;i=i+2)
s=s+b[i];
return s;
}
main()
{ int x,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
A、8 B、10 C、18 D、15
<标准答案>=b
[题目描述]
27.下列程序执行后的输出结果是________。
#define MA(x) x*(x-1)
main()
{
int a=2,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\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];
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];
printf("%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,10};
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 ! 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
[题目描述]
3、下面四个选项中,均是合法的用户标识符的选项
是 ( 3 ) 。
A、b_a B、Float C、begin D、_123
goto a2 int temp
long Char bird double
<标准答案>=b
[题目描述]
4、下面四个选项中,均是不正确的八进制数或
十六进制数的选项是( 4 )。
A、016
展开阅读全文