大学C语言期末考试题库试题及答案汇总
更新时间:2023-04-30 19:34:01 阅读量: 综合文库 文档下载
1.
下列定义变量的语句中错误的是______。
A、int _int
B、double int_
C、char For
D、float US$
答案:D
知识点:常量、变量和标识符
2.
以下不合法的用户标识符是______。
A、j2_KEY
B、Double
C、4d
D、_8_
答案:C
知识点:常量、变量和标识符
3.
以下4组用户定义标识符中,全部合法的一组是
______。
A、_main enclude sin
B、If -max turbo
C、txt REAL 3COM
D、int k_2 _001 ???
答案:A
知识点:常量、变量和标识符
4.
以下定义语句中正确的是______。
A、char a='A' b='B';
B、float a=b=10.0;(正解a=10.0 b=10.0)
C、int a=10,*b=&a;
D、float *a,b=&a;???
答案:C
知识点:常量、变量和标识符
5.
以下不能定义为用户标识符的是______。
A、scanf
B、Void
C、_3com_
D、int
答案:D
知识点:常量、变量和标识符
6.
以下有4组用户标识符,其中合法的一组是______。
A、For -sub Case
B、4d DO Size
C、f2_G3 IF abc
D、WORD Void define
答案:C
知识点:常量、变量和标识符
7.
C语言中最简单的数据类型包括______。
A、整型、实型、逻辑型
B、整型、实型、字符型
C、整型、字符型、逻辑型
D、整型、实型、逻辑型、字符型
答案:B
知识点:常量、变量和标识符
8.
下列选项中,合法的C语言关键字是______。
A、VAR
B、cher
C、integer
D、default
答案:D
知识点:常量、变量和标识符
9.
以下不能定义为用户标识符的是______。
A、Main
B、_0
C、_int
D、sizeof
答案:D
知识点:常量、变量和标识符
10.
下列叙述中正确的是______。
A、C语言中既有逻辑类型也有集合类型
B、C语言中没有逻辑类型但有集合类型
C、C语言中有逻辑类型但没有集合类型
D、C语言中既没有逻辑类型也没有集合类型答案:D
知识点:常量、变量和标识符
11.
当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是______。
A、c=b=a;
B、(a=c)‖(b=c);
C、(a=c)&&(b=c);
D、a=c=b;
答案:C
知识点:赋值表达式
12.
以下选项中非法的表达式是______。
A、0<=x<100
B、i=j==0
C、(char)(65+3)
D、x+1=x+1
答案:D
知识点:赋值表达式
13.
以下程序的输出结果是______。
#include
main()
{
int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);???
}
A、6,1
B、2,1
C、6,0
D、2,0
答案:B
知识点:赋值表达式
14.
以下循环体的执行次数是______。
main()
{
int i,j;
for (i=0,j=1; i<=j+1;i+=2,j--)
printf("%d \n",i);
}
A、3
B、2
C、1
D、0
答案:C
知识点:赋值表达式
15.
有以下定义语句
double a,b; int w; long c;
若各变量已正确赋值,则下列选项中正确的表达式是______。
A、a=a+b=b++
B、w%((int)a+b)
C、(c+w)%(int)a
D、w=a=b;
答案:C
知识点:赋值表达式
16.
有如下程序
main()
{
int a; char c=10;
float f=100.0; double x;
a=f/=c*=(x=6.5);
printf("%d %d %3.1f%3.1f\n",a,c,f,x);
}
程序运行后输出结果是______。
A、1 65 1 6.5
B、1 65 1.5 6.5
C、1 65 1.0 6.5
D、2 65 1.5 6.5
答案:B
知识点:赋值表达式
17.
若变量a、i已正确定义,且i已正确赋值,合法的语句是______。
A、a==1
B、++i;
C、a=a++=5;
D、a=int(i);
答案:B
知识点:赋值表达式
18.
若变量已正确定义并赋值,下面符合C语言语法的表达式是______。
A、a:=b+1
B、a=b=c+2
C、int 18.5%3
D、a=a+7=c+b
答案:B
知识点:赋值表达式
20.
设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是
______。
A、x=x*100+0.5/100.0
B、x=(x*100+0.5)/100.0
C、x=(int)(x*100+0.5)/100.0???
D、x=(x/100+0.5)*100.0
答案:C
知识点:赋值表达式
22.
在一个C程序中______。
A、main函数必须出现在所有函数之前
B、main函数可以在任何地方出现
C、main函数必须出现在所有函数之后
D、main函数必须出现在固定位置
答案:B
知识点:简单C语言程序的构成和格式
23.
以下说法中正确的是______。
A、#define和printf都是C语句
B、#define是C语句,而printf不是
C、printf是C语句,但#define不是
D、#define和printf都不是C语句
答案:D
知识点:简单C语言程序的构成和格式
24.若k是int型变量,且有下面的程序片段
k=-3
if(k<=0) printf("####")
else printf("&&&&");
上面程序片段的输出结果是______。
A、####
B、&&&&
C、####&&&&
D、有语法错误,无输出结果
答案:D
知识点:简单C语言程序的构成和格式
25.
以下4个选项中,不能看作一条语句的是______。A、{;} B、a=0,b=0,c=0;
C、if(a>0);
D、if(b==0) m=1;n=2;???
答案:D
知识点:简单C语言程序的构成和格式
26.
有以下程序
main()
{
int a=0,b=0;
a=10; /* 给a赋值*/
b=20; /* 给b赋值*/
printf("a+b=%d\n",a+b);
}
程序运行后的输出结果是______。
A、a+b=10
B、a+b=30
C、30
D、出错
答案:B
知识点:简单C语言程序的构成和格式
27.以下选项中,不能作为合法常量的是______。
A、1.234e04
B、1.234e0.4
C、1.234e+4
D、1.234e0
答案:B
知识点:实型数据
28.
以下符合C语言语法的实型常量是______。
A、1.2E0.5
B、3.14159E
C、.5E-3
D、E15
答案:C
知识点:实型数据
30.
表达式3.6-5/2+1.2+5%2的值是______。
A、4.3
B、4.8
C、3.3
D、3.8
答案:D
知识点:算术表达式
31.
设int a=12,则执行完语句a+=a-=a*a后,a的值是______。
A、552
B、264
C、144
D、-264
答案:D
知识点:算术表达式
32.
以下变量x、y、z均为double类型且已正确赋值,不能正确表示数字式子x/(y*z)的C语言表达式是______。
A、x/y*z
B、x*(1/(y*z))
C、x/y*1/z
D、x/y/z
答案:A
知识点:算术表达式
33.
若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值是______。
A、1.4
B、1
C、2.0
D、2
答案:B
知识点:算术表达式
34.
设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式1/2((a+b)h) 计算结果不相符的是______。
A、(a+b)*h/2
B、(1/2)*(a+b)*h
C、(a+b)*h*1/2
D、h/2*(a+b)
答案:B
知识点:算术表达式
35.
假定x和y为double型,表达式x=2,y=x+3/2的值是______。
A、3.500000
B、3
C、2.000000
D、3.000000
答案:D
知识点:算术表达式
36.
若已定义x和y为double类型,则表达式
x=1,y=x+3/2的值是______。
A、1
B、2
C、2.000000
D、2.500000
答案:C
知识点:算术表达式
37.
若有以下程序段
int c1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是______。
A、0
B、0.5
C、1
D、2
答案:A
知识点:算术表达式
38.
设有int x=11;则表达式(x++ * 1/3)的值是
______。??
A、3
B、4
C、11
D、12
答案:A
知识点:算术表达式
39.
下列程序的输出结果是______。
main()
{
double d=3.2; int x,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d \n",d*y);
}
A、3
B、3.2
C、0
D、3.07
答案:C
知识点:算术表达式
40.
请读程序片段:
int i=65536;
printf("%d\n",i);
上面程序片段的输出结果是______。
A、65536
B、0
C、有语法错误,无输出结果
D、-1
答案:B
知识点:整型数据
41.
若有以下定义和语句:
int u=010,v=0x10,w=10;
printf("%d,%d,%d\n",u,v,w);
则输出结果是: ______。
A、8,16,10
B、10,10,10
C、8,8,10
D、8,10,10
答案:A
知识点:整型数据
42.
在C语言中,不正确的int类型的常数是______。
A、32768
B、0
C、037
D、0xAF
答案:A
知识点:整型数据
43.
以下程序的输出结果是______。
main( )
{
int k=17;
printf("%d,%o,%x \n",k,k,k);
}
A、17,021,0x11
B、17,17,17
C、17,0x11,021
D、17,21,11
答案:D
知识点:整型数据
44.
下面程序的输出是______。
main()
{
unsigned a=32768;
printf("a=%d\n",a);
}
A、a=32768
B、a=32767
C、a=-32768
D、a=-1
答案:C
知识点:整型数据
45.
在C语言中,合法的长整型常数是______。
A、0L
B、4962710
C、324562&
D、216D
答案:A
知识点:整型数据
46.
C语言中运算对象必须是整型的运算符是______。
A、%=
B、/
C、=
D、<=
答案:A 知识点:整型数据
47.
以下选项中不属于C语言的类型名称是______。
A、signed short int
B、unsigned long int
C、unsigned int
D、long short
答案:D
知识点:整型数据
48.
有以下程序
main()
{
int m=0256,n=256;
printf("%o %o\n",m,n);
}
程序运行后的输出结果是______。
A、0256 0400
B、0256 256
C、256 400
D、400 400
答案:C
知识点:整型数据
49.
若执下面程序时从键盘上输入5,
main()
{
int x;
scanf("%d",&x);
if(x++>5) printf("%d\n",x);
else printf("%d\n",x--);
}
则输出是______。
A、7
B、6
C、5
D、4
答案:B
知识点:自加、自减运算符和逗号运算符
50.
有以下程序
main ()
{
char a1='M', a2='m';
printf("%c\n", (a1,a2));
}
以下叙述中正确的是______。
A、程序输出大写字母M
B、程序输出小写字母m
C、格式说明符不足,编译出错
D、程序运行时产生出错信息
答案:B
知识点:自加、自减运算符和逗号运算符
51.
以下程序的输出结果是______。
main()
{
int a;
printf("%d\n",(a=3*5,a*4,a+5));
}
A、65
B、20
C、15
D、10
答案:B
知识点:自加、自减运算符和逗号运算符
53.
设有如下程序段
int x=2002,y=2003;
printf("%d\n",(x,y));
则以下叙述中正确的是______。
A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B、运行时产生错误信息
C、输出值为2002
D、输出值为2003
答案:D
知识点:自加、自减运算符和逗号运算符
54.
有以下程序
main()
{
int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是______。
A、2,3,3
B、2,3,2
C、2,3,1
D、2,2,1
答案:C
知识点:自加、自减运算符和逗号运算符
55.
设有以下定义
int a=0;
double b=1.25;
char c='A';
#define d 2
则下面语句中错误的是______。
A、a++;
B、b++;
C、c++;
D、d++;
答案:D
知识点:自加、自减运算符和逗号运算符
56.
以下程序的输出结果是______。
main()
{
int x=10,y=10;
printf("%d %d\n",x--,--y);
}
A、10 10
B、99
C、9 10
D、10 9
答案:D
知识点:自加、自减运算符和逗号运算符
57.
若x和y都是int型变量,x=100、y=200,且有下面的程序片段
printf("%d",(x,y));
上面程序片段的输出结果是______。
A、200
B、100
C、100 200
D、输则格式符不够, 输出不确定的值
答案:A
知识点:自加、自减运算符和逗号运算符
58.
设有如下定义:
int x=10,y=3,z;
则语句
printf("%d\n",z=(x%y,x/y));
的输出结果是______。
A、1
B、0
C、4
D、3
答案:D
知识点:自加、自减运算符和逗号运算符
59.
两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是______。
main( )
{
int x;
scanf("%d",&x);
if(x++ > 5)
printf("%d",x);
else
printf("%d\n",x--);
}
A、7和5
B、6和3
C、7和4
D、6和4
答案:A
知识点:自加、自减运算符和逗号运算符
60.若t为double类型,表达式t=1,t+5,t++的值是
______。
A、1
B、6.0
C、2.0
D、1.0
答案:D
知识点:自加、自减运算符和逗号运算符
61.
以下程序的输出结果是______。
#include
main()
{
int i=10,j=10;
printf("%d,%d\n",++i,j--);
}
A、11,10
B、9,10
C、010,9
D、10,9
答案:A
知识点:自加、自减运算符和逗号运算符
62.
有以下程序
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
程序执行后的输出结果是______。
A、y=0
B、y=-1
C、y=1
D、while构成无限循环
答案:B
知识点:自加、自减运算符和逗号运算符
63.
以下叙述中正确的是______。
A、全局变量的作用域一定比局部变量的作用域范围大
B、静态(static)类别变量的生存期贯穿于整个程序的运行期间
C、函数的形参都属于全局变量
D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值
答案:B
知识点:局部变量及其作用域和生存期
64.
下面程序的输出是______。
fun3(int x)
{
static int a=3;
a+=x;
return(a);
}
main()
{
int k=2, m=1, n;
n=fun3(k);
n=fun3(m);
printf("%d\n",n);
}
A、3
B、4
C、6
D、9
答案:C
知识点:局部变量及其作用域和生存期
65.以下叙述中正确的是______。
A、局部变量说明为static 存储类,其生存期将得到延长
B、全局变量说明为static 存储类,其作用域将被扩大
C、任何存储类的变量在未赋初值时,其值都是不确定的
D、形参可以使用的存储类说明符与局部变量完全相同答案:A
知识点:局部变量及其作用域和生存期
66.
有以下程序
int fun(int x[],int n)
{
static int sum=0,i;
for(i=0;i return sum; } main() { int a[]={1,2,3,4,5},b[]={6,7,8,9,},s=0; s=fun(a,5)+fun(b,4); printf("%d\n",s); } 程序执行后的输出结果是______。 A、45 B、50 C、60 D、55 答案:C 知识点:局部变量及其作用域和生存期 67. 以下程序执行后sum的值是______。 main() { int i,sum; for(i=1;i<6;i++) sum+=i; printf("%d\n",sum); } A、15 B、14 C、不确定 D、0 答案:C 知识点:局部变量及其作用域和生存期 68. 以下程序的输出结果是______。 main() { int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p); } func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } A、8,17 B、8,16 C、8,20 D、8,8 答案:A 知识点:局部变量及其作用域和生存期 69. 设有以下函数: f(int a) { int b=0; static int c=3; b++; c++; return (a+b+c); } 如果在下面的程序中调用该函数,则输出结果是______。 main() { int a=2,i; for(i=0;i<3;i++) printf("%d\n",f(a)); D、7 7 7 C、13 B、11 } A、7 8 9 答案:A 知识点:局部变量及其作用域和生存期70. 有以下程序 fun(int x, int y) { static int m=0,i=2; i+=m+1; m=i+x+y; return m; } main() { int j=1,m=1,k; k=fun(j,m); printf("%d,",k); k=fun(j,m); printf("%d\n",k); } 执行后的输出结果是______。 A、5,5 B、5,11 C、11,11 D、11,5 答案:B 知识点:局部变量及其作用域和生存期71. 以下程序的输出结果是______。 int a,b; void fun() { a=100; b=200; } main() { int a=5,b=7; fun(); printf("%d%d\n",a,b); } A、100200 B、57 C、200100 D、75 答案:B 知识点:全局变量及其作用域和生存期72. 有如下程序 int func(int a,int b) { return(a+b); } main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf("%d\n",r); } 该程序的输出结果是______。 A、12 B、13 C、14 D、15 答案:D 知识点:调用函数和被调用函数之间的数据传递 73. 有以下程序 void f(int v,int w) { int t; t=v;v=w;w=t; } main() { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf("%d,%d,%d\n",x,y,z); } 执行后输出结果是______。 A、1,2,3 B、3,1,2 C、1,3,2 D、2,3,1 答案:C 知识点:调用函数和被调用函数之间的数据传递 74. 有以下程序 void f(int x,int y) { int t; if(x } main() { int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf("%d,%d,%d\n",a,b,c); } 执行后输出结果是______。 A、3,4,5 B、5,3,4 C、5,4,3 D、4,3,5 答案:D 知识点:调用函数和被调用函数之间的数据传递75.有以下程序 int fun1(double a) { return a*=a; } int fun2(double x,double y) { double a=0,b=0; a=fun1(x); b=fun1(y); return (int)(a+b); } main() { double w; w=fun2(1.1,2.0); } 程序执行后变量w中的值是______。 A、5.21 B、5 C、5.0 D、0.0 答案:C 知识点:调用函数和被调用函数之间的数据传递 80. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。 A、地址传递 B、单向值传递 C、由实参传给形参 D、再由形参传回实参 答案:B 知识点:函数的调用 81. 当执行下面的程序时,如果输入ABC,则输出结果是______。 #include "stdio.h" #include "string.h" main() { char ss[10]="12345"; gets(ss); strcat(ss,"6789"); printf("%s\n",ss); } A、ABC6789 B、ABC67 C、12345ABC6 D、ABC456789 答案:A 知识点:函数的调用 82. 有如下程序 long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%ld\n",fib(3)); } 该程序的输出结果是______。 A、2 B、4 C、6 D、8 答案:B 知识点:函数的调用 83. 设函数fun的定义形式为 void fun(char ch,float x) {……} 则以下对函数fun的调用语句中,正确的是______。 A、fun("abc",3.0); B、t=fun('D',16.5); C、fun ('65',2.8); D、fun(32,32); 答案:D 知识点:函数的调用 84. 有以下程序 char fun(char x,char y) { if(x return y; } main() { int a='9',b='8',c='7'; printf("%c\n",fun(fun(a,b),fun(b,c))); } 程序的执行结果是______。 A、函数调用出错 B、8 C、9 D、7 答案:D 知识点:函数的调用 85. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是______。 A、函数调用可以作为独立的语句存在 B、函数调用可以作为一个函数的实参 C、函数调用可以出现在表达式中 D、函数调用可以作为一个函数的形参 答案:D 知识点:函数的调用 86. 有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是______。 A、3 B、4 C、5 D、有语法错 答案:A 知识点:函数的调用 92. 以下函数值的类型是______。 fun(float x) { float y; y=3*x-4; return y; } A、int B、不确定 C、void D、float 答案:A 知识点:函数的定义和返回值 93. 在C语言中,形参的缺省存储类是______。 A、auto B、register C、static D、extern 答案:A 知识点:函数的定义和返回值 94. 有以下程序 int f(int a) { return a%2; } main() { int s[8]={1,3,5,2,4,6},i,d=0; for(i=0;f(s[i]);i++) d+=s[i]; printf("%d\n",d); } 程序运行后的输出结果是______。 A、9 B、11 C、19 D、21 答案:A 知识点:函数的定义和返回值 95. 在C语言中,函数的隐含存储类别是______。 A、auto B、static C、extern D、无存储类别 答案:C 知识点:函数的定义和返回值 97. 若程序中定义了以下函数 double myadd(double a,double b) { return (a+b); } 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是______。 A、double myadd(double a,b); B、double myadd(double,double); C、double myadd(double b,double a); D、double myadd(double x,double y); 答案:A 知识点:函数的定义和返回值 98. 若有以下程序 #include void f(int n) main() { void f(int n); f(5); } void f(int n); { printf("%d\n",n); } 则以下叙述不正确的是______。 A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f B、若在主函数前对函数f进行说明,则在主函数和其它函数中都可以正确调用函数f C、对于以上程序,编译时系统会出提示出错信息:提示对f函数重复说明 D、函数f无返回值,所以可用void将其类型定义为无值型 答案:C 知识点:函数的说明 99. 下列叙述中正确的是______。 A、C语言编译时不检查语法 B、C语言的子程序有过程和函数两种 C、C语言的函数可以嵌套定义 D、C语言所有函数都是外部函数 答案:D 知识点:库函数 101. 以下不能正确定义二维数组的选项是______。 A、int a[2][2]={{1},{2}}; B、int a[][2]={1,2,3,4}; C、int a[2][2]={{1},2,3}; D、int a[2][]={{1,2},{3,4}}; 答案:D 知识点:二维数组的定义和二维数组元素的引用102. 以下能正确定义二维数组的是______。 A、int a[][3]; B、int a[][3]={2*3}; C、int a[][3]={}; D、int a[2][3]={{1},{2},{3,4}}; 答案:B 知识点:二维数组的定义和二维数组元素的引用103. 以下程序的输出结果是______。 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、18 B、19 C、20 D、21 答案:A 知识点:二维数组的定义和二维数组元素的引用104. 以下程序的输出结果是______。 main() { int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); } A、1,5,9 B、1,4,7 C、3,5,7 D、3.6.9 答案:C 知识点:二维数组的定义和二维数组元素的引用105. 有以下程序 main() { int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf("%d",t[2-i][i]); } 判序执行后的输出结果是______。 A、753 B、357 C、369 D、751 答案:B 知识点:二维数组的定义和二维数组元素的引用106. 以下数组定义中错误的是______。 A、int x[][3]={0}; B、int x[2][3]={{1,2},{3,4},{5,6}}; C、int x[][3]={{1,2,3},{4,5,6}}; D、int x[2][3]={1,2,3,4,5,6}; 答案:B 知识点:二维数组的定义和二维数组元素的引用 107. 以下数组定义中不正确的是______。 A、int a[2][3]; B、int b[][3]={0,1,2,3}; C、int c[100][100]={0}; D、int d[3][]={{1,2},{1,2,3},{1,2,3,4}}; 答案:D 知识点:二维数组的定义和二维数组元素的引用 108. 有以下程序 main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0;i<3;i++) { printf("%d ",m[k][i]); } } 执行后输出结果是______。 A、4 5 6 B、2 58 C、3 6 9 D、7 8 9 答案:C 知识点:二维数组的定义和二维数组元素的引用 109. 以下能正确定义数组并正确赋初值的语句是______。 A、int N=5,b[N][N]; B、int a[1][2]={{1},{3}}; C、int c[2][]={{1,2},{3,4}}; D、int d[3][2]={{1,2},{34}}; 答案:D 知识点:二维数组的定义和二维数组元素的引用 111. 以下程序的输出结果是______。 main() { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1], a[3][0]); } A、0650 B、1470 C、5430 D、输出值不定 答案:A 知识点:二维数组的定义和二维数组元素的引用 112. 定义如下变量和数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是______。 for(i=0;i<3;i++) printf("%d ",x[i][2-i]); A、1 5 9 B、1 47 C、3 5 7 D、3 6 9 答案:C 知识点:二维数组的定义和二维数组元素的引用 113. 有以下程序 main() { int x[3][2]={0},i; for(i=0;i<3;i++) scanf("%d",x[i]); printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0] ); } 若运行时输入:2 4 6<回车>,则输出结果为______。 A、2 0 0 B、2 0 4 C、2 4 0 D、2 4 6 答案:B 知识点:二维数组的定义和二维数组元素的引用 114. 以下程序的输出结果是______。 main() { char w[][10]={"ABCD","EFGH","IJLK","MNOP"},k; for(k=1;k<3;k++) printf("%s\n",w[k]); D、EFGH IJLK C、EFG JK O B、ABCD EFG IJ M } A、ABCD FGH KL 答案:D 知识点:二维数组的定义和二维数组元素的引用130. 当调用函数时,实参是一个数组名,则向函数传送的是______。 A、数组的长度 B、数组的首地址 C、数组每一个元素的地址 D、数组每个元素中的值 答案:B 知识点:函数之间对一维数组和数组元素的引用132. 有以下程序 void sum(int a[]) { a[0]=a[-1]+a[1]; } main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; sum (&a[2]); printf("%d\n",a[2]); } 程序运行后输出结果是______。 A、6 B、7 C、5 D、8 答案:A 知识点:函数之间对一维数组和数组元素的引用138. 有以下程序 main() { char s[]="abcde"; s+=2; printf("%d\n",s[0]); } 执行后的结果是______。 A、输出字符a的ASCII码 B、输出字符c的ASCII码 C、输出字符c D、程序出错 答案:D 知识点:函数之间对一维数组和数组元素的引用 139. 请读程序: #include f(int b[],int n) { int i,r; r=1; for(i=0;i<=n;i++) r=r*b[i]; return r; } main() { int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf("%d\n",x); } 上面程序的输出结果是______。 A、720 B、120 C、24 D、6 答案:B 知识点:一维数组的定义和一维数组元素的引用140. 若要求定义具有10个int形元素的一维数组a,则以下的定义语句中错误的是______。 A、#define N 10 int a[N]; B、#define n 5 int a[2*n]; C、int a[5+5]; D、int n=10,a[n]; 答案:D 知识点:一维数组的定义和一维数组元素的引用141.合法的数组定义是______。 A、int a[]="string"; B、int a[5]={0,1,2,3,4,5}; C、char s="string"; D、char a[]={0,1,2,3,4,5}; 答案:D 知识点:一维数组的定义和一维数组元素的引用144. 以下能正确定义一维数组的选项是______。 A、int a[5]={0,1,2,3,4,5}; B、char a[]={0,1,2,3,4,5}; C、char a={'A','B','C'}; D、int a[5]="0123"; 答案:B 知识点:一维数组的定义和一维数组元素的引用145. 有如下程序 main() { int n[5]={0,0,0},i,k=2; for(i=0;i n[i]=n[i]+1; printf("%d\n",n[k]); } 该程序的输出结果是______。 A、不确定的值 B、2 C、1 D、0 答案:D 知识点:一维数组的定义和一维数组元素的引用146. 以下程序的输出结果是______。 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 知识点:一维数组的定义和一维数组元素的引用147. 执行下面的程序段后,变量k中的值为______。int k=3,s[2]; s[0]=k; k=s[1]*10; A、不定值 B、33 C、30 D、10 答案:A 知识点:一维数组的定义和一维数组元素的引用 170. 以下能正确计算定义且赋初值的语句是______。 A、int n1=n2=10; B、char c=32; C、fioat f=f+1.1; D、double x=12.3E2.5 答案:B 知识点:赋值语句 171. 以下合法的赋值语句是______。 A、x=y=100 B、d--; C、x+y; D、c=int(a+b); 答案:B 知识点:赋值语句 172. 下列语句中符合C语言语法的赋值语句是______。A、a=7+b+c=a+7; B、a=7+b++=a+7; C、a=7+b,b++,a+7 D、a=7+b,c=a+7; 答案:D 知识点:赋值语句 173. 请选出合法的C语言赋值语句______。 A、a=b=58 B、i++; C、a=58,b=58 D、k=int(a+b); 答案:B 知识点:赋值语句 174. 下面程序的输出是______。 main() { int x=10,y=3; printf("%d\n",y=x/y); } A、0 B、1 C、3 D、不确定的值 答案:C 知识点:数据输出 175. 已知字母A的ASCII码为十进制的65,下面程序的输出是______。 main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A、67,D B、B,C C、C,D D、不确定的值 答案:A 知识点:数据输出 176. 下列程序的运行结果是______。 #include main() { int a=2,c=5; printf("a=%d,b=%d \n",a,c); } A、a=%2,b=%5 B、a=2,b=5 C、a=d,b=d D、a=%d,b=5d 答案:B 知识点:数据输出 177. 以下程序的输出结果是______。 #include main() { int a=2,c=5; printf("a=%%d,b=%%d\n",a,c); } A、a=%2,b=%5 B、a=2,b=5 C、a=%%d,b=%%d D、a=%d,b=%d 答案:D 知识点:数据输出 178. 有以下程序 main( ) { int x=102,y=012; printf("%2d,%2d\n",x,y); } 执行后输出结果是______。 A、10,01 B、02,12 C、102,10 D、02,10 答案:C 知识点:数据输出 179. 有以下程序 main() { int a=666,b=888; printf("%d\n",a,b); } 程序运行后的输出结果是______。 A、错误信息 B、666 C、888 D、666,888 答案:B 知识点:数据输出 180. 有以下程序 #include main() { char c1='1',c2='2'; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); } 当运行时输入:a <回车> 后,以下叙述正确的是 ______。 A、变量C1 被赋予字符a,c2被赋予回车符 B、程序将等待用户输入第2个字符 C、变量c1被赋予字符a, c2中仍是原有字符2 D、变量c1 被赋予字符a,c2中将无确定值 答案:A 知识点:数据输入 181. 执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是______。 main() { char s[100]; int c,i; scanf("%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%s \n",c,i,s); } A、123,456,789 B、1,456,789 C、1,23,456,789 D、1,23,456 答案:D 知识点:数据输入 182. 有定义语句:int b;char c[10];,则正确的输入语句是______。 A、scanf("%d%s",&b,&c); B、scanf("%d%s",&b,c); C、scanf("%d%s",b,c); D、scanf("%d%s",b,&c); 答案:B 知识点:数据输入184. 若要求从键盘读入含有空格字符的字符串,应使用函数______。 A、getc() B、gets() C、getchar() D、scanf() 答案:B 知识点:数据输入 186. 有以下程序 #include main() { char c1,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、1267 B、1256 C、1278 D、1245 答案:D 知识点:数据输入 188. 有以下程序 main() { int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量m 中的值为123,n 中的数值为456,p 中的值为789,则正确的输入是 ______。 A、m=123n=456p=789 B、m=123 n456 p=789 C、m=123,n=456,p=789 D、123 456 789 答案:A 知识点:数据输入 189. 有以下程序段 int m=0,n=0; char c='a'; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入:10A10<回车>,则输出结果是 ______。 A、10,A,10 B、10,a,10 C、10,a,0 D、10,A,0 答案:A 知识点:数据输入 据输入 192. 有定义语句:int x,y;,若要通过 scanf("%d,%d",&x,&y);语句使变量x得到数据11,变量y得到数值12,下面四组输入形式中,错误的是______。 A、11 12<回车> B、11,12<回车> C、11, 12<回车> D、11,<回车> 12<回车> 答案:A 知识点:数据输入 193. 在嵌套使用if语句时,C语言规定else总是______。 A、和之前与其具有相同缩进位置的if配对 B、和之前与其最近的if配对 C、和之前与其最近的且不带else的if配对 D、和之前的第一个if配对 答案:C 知识点:if语句和用if语句构成的选择结构 195. 假定所有变量均已正确说明,下列程序段运行后x的值是______。 a=b=c=0;x=35; if(!a) x--; else if(b) ; if(c) x=3; else x=4; A、34 B、4 C、35 D、3 答案:B 知识点:if语句和用if语句构成的选择结构 196. 有以下程序 main() { int i; for(i=1;i<40;i++) { if(i++%5==0) if(++i%8==0) printf("%d ",i); } printf("\n"); } 执行后的输出结果是______。 A、5 B、24 C、32 D、40 答案:C 知识点:if语句和用if语句构成的选择结构 198. 有如下程序 main() { int a=2,b=-1,c=2; if(a if(b<0) c=0; else c++; printf("%d\n",c); } 该程序的输出结果是______。 A、0 B、1 C、2 D、3 答案:C 知识点:if语句和用if语句构成的选择结构 199. 请读程序: #include #include main() { float x,y,z; scanf("%f%f",&x,&y); z=x/y; while(z) { if(fabs(z)>1.0) { x=y; y=z; z=x/y; } else break; } printf("%f\n",y); } 若运行时从键盘上输入3.6 2.4 A、1.500000 B、1.600000 C、2.000000 D、2.400000 答案:B 知识点:if语句和用if语句构成的选择结构 204. 有以下程序 main() { int k=5,n=0; while(k>0) { switch(k) { default : break; case 1: n+=k; case 2: case 3: n+=k; } k- -; } printf("%d\n",n); } 程序运行后的输出结果是______。 A、0 B、4 C、6 D、7 答案:D 知识点:switch语句以及用switch语句和break语句构成的选择结构 207. 有以下程序 main() { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } } 执行后输出结果是______。 A、011122 B、012 C、012020 D、120 答案:A 知识点:switch语句以及用switch语句和break语句构成的选择结构 209. 有如下程序 main() { int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf("a=%d,b=%d\n",a,b); } 该程序的输出的结果是______。 A、a=2,b=1 B、a=1,b=1 C、a=1,b=0 D、a=2,b=2 答案:A 知识点:switch语句以及用switch语句和break语句构成的选择结构 210. 以下程序的输出结果是______。 main() { int a=0,i; for(i=1;i<5;i++) { switch(i) { case 0: case 3: a+=2; case 1: case 2: a+=3; default: a+=5; } } printf("%d\n",a); } A、31 B、13 C、10 D、20 答案:A 知识点:switch语句以及用switch语句和break语句构成的选择结构 212. 下列叙述中正确的是______。 A、break语句只能用于switch语句 B、在switch语句中必须使用default C、break语句必须与switch语句中的case配对使用 D、在switch语句中,不一定使用break语句 答案:D 知识点:switch语句以及用switch语句和break语句构成的选择结构 213. 设a为整型变量,不能正确表达数学关系:10 A、10 B、a= =11||a==12||a= =13||a==14 C、a>10 && a<15 D、!(a<=10)&&!(a>=15) 答案:A 知识点:关系运算和逻辑运算 214. 以下程序的输出结果是______。 main() { int a=4,b=5,c=0,d; d=!a&&!b||!c; printf("%d\n",d); } A、1 B、0 C、非0的数 D、-1 答案:A 知识点:关系运算和逻辑运算 215. 语句:printf("%d",(a=2)&&(b=-2));的输出结果是 ______。 A、无输出 B、结果不确定 C、-1 D、1 答案:D 知识点:关系运算和逻辑运算 216. 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后,n的值为______。A、0 B、1 C、2 D、3 答案:C 知识点:关系运算和逻辑运算 217. 若变量c为char类型,能正确判断出c为小写字母的表达式是______。 A、'a'<=c<='z' B、(c>='a')||(c<='z') C、('a'<=c)and('z'>=c) D、(c>='a')&&(c<='z') 答案:D 知识点:关系运算和逻辑运算 218. 能正确表示逻辑关系:“a≥10 或a≤0”的C语言表达式是______。 A、a>=10 or a<=0 B、a>=0 | a<=10 C、a>=10 && a<=0 D、a>=10 || a<=10 答案:D 知识点:关系运算和逻辑运算 219. 有如下程序 main() { int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a printf("%d,%d\n",k,m); } 程序运行后的输出结果是______。 A、0,0 B、0,1 C、1,0 D、1,1 答案:C 知识点:关系运算和逻辑运算 220. 设int x=1,y=1;表达式(!x||y--)的值是______。A、0 B、1 C、2 D、-1 答案:B 知识点:关系运算和逻辑运算 221. 设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是______。 A、(!a==1)&&(!b==0) B、(a C、a&&b D、a||(b+b)&&(c-a) 答案:A 知识点:关系运算和逻辑运算 222. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为______。 A、a<>0 B、!a C、a=0 D、a 答案:D 知识点:关系运算和逻辑运算 223. 有如下程序段 int a=14,b=15,x; char c='A'; x=(a&&b)&&(c<'B'); 执行该程序段后,x的值为______。 A、true B、false C、0 D、1 答案:D 知识点:关系运算和逻辑运算 224. 能正确表示a和b同时为正或同时为负的逻辑表达式是______。 A、(a>=0‖b>=0)&&(a<0‖b<0) B、(a>=0&&b>=0)&&(a<0&&b<0) C、(a+b>0)&&(a+b<=0) D、a*b>0 答案:D 知识点:关系运算和逻辑运算 225. 若x是int型变量,且有下面的程序片段: for(x=3; x<6; x++) printf((x%2)?("**%d"):("##%d\n"),x); 上面程序片段的输出结果是______。 答案:D 知识点:条件表达式构成的选择结构 227. 以下程序的输出结果是______。 main() {int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); } A、5 B、4 C、6 D、不确定 答案:C 知识点:条件表达式构成的选择结构 228. 若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a 答案:A 知识点:条件表达式构成的选择结构 229.若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是______。 A、(x-y>0) B、(x-y<0) C、(x-y<0||x-y>0) D、(x-y= =0) 答案:C 知识点:条件表达式构成的选择结构 230. 有以下程序段 int k=0,a=1,b=2,c=3; k=a k=k>c?k:b; 执行该程序段后,k的值是______。 A、3 B、2 C、1 D、0 答案:B 知识点:条件表达式构成的选择结构 231.以下程序段中与语句k=a>b?(b>c?1:0):0; 功能等价的是_____。 A、if((a>b)&&(b>c)) k=1; else k=0; B、if((a>b)||(b>c)) k=1; else k=0; C、if(a<=b) k=0; else if(b<=c) k=1; D、if(a>b) k=1; else if(b>c) k=1; else k=0; 答案:A 知识点:条件表达式构成的选择结构 232.假定w、x、y、z、m均为int型变量,有如下程序段: w=1;x=2;y=3;z=4; m=(w m=(m m=(m 则该程序执行后,m的值是______。 A、4 B、3 C、2 D、1 答案:D 知识点:条件表达式构成的选择结构 233.有以下程序 main() { int k=4,n=0; for(;n { n++; if(n%3!=0) continue; k--; } printf("%d,%d\n",k,n); } 程序运行后的输出结果是______。 A、1,1 B、2,2 C、3,3 D、4,4 答案:C 知识点:break和continue语句在循环中的作用234. 有如下程序 main() { int x=23; do { printf("%d",x--); } while(!x); } 该程序的执行结果是______。 A、321 B、23 C、不输出任何内容 D、陷入死循环答案:B 知识点:do-while语句和do-while语句构成的循环结构 235. 有以下程序 main() { int s=0,a=1,n; scanf("%d",&n); do { s+=1; a=a-2; } while(a!=n); printf("%d\n",s); } 若要使程序的输出值为2,则应该从健盘给n输入的值是______。 A、-1 B、-3 C、-5 D、0 答案:B 知识点:do-while语句和do-while语句构成的循环结构 236. 有以下程序段 int n,t=1,s=0; scanf("%d",&n); do { s=s+t; t=t-2; } while(t!=n); 为使此程序不陷入死循环,从键盘输入的数据应该是 ______。 A、任意正奇数 B、任意负偶数 C、任意正偶数 D、任意负奇数 答案:D 知识点:do-while语句和do-while语句构成的循环结构 239. 有以下程序 main() { int i=0,s=0; do { if(i%2) { i++; continue; } i++; s+=i; } while(i<7); printf("%d\n",s); } 执行后输出结果是______。 A、16 B、12 C、28 D、21 答案:A 知识点:do-while语句和do-while语句构成的循环结构 240. 下面的程序的运行结果是______。 main() { int x=3; do { printf("%d\n",x-=2); } while(!(--x)); } A、输出的是1 B、输出的是1和-2 C、输出的是3和0 D、是死循环 答案:B 知识点:do-while语句和do-while语句构成的循环结构 241. 以下叙述正确的是______。 A、do-while语句构成的循环不能用其它语句构成的循环来代替 B、do-while语句构成的循环只能用break语句退出 C、用do-while语句构成的循环,在while后的表达式为非零时结束循环 D、用do-while语句构成的循环,在while后的表达式为零时结束循环 答案:D 知识点:do-while语句和do-while语句构成的循环结构 242. 以下程序的输出结果是______。 main() { int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d %d ",x--,y); } A、10 1 9 2 B、9 8 7 6 C、10 9 9 0 D、10 10 9 1 答案:D 知识点:for语句和用for语句构成的循环结构 244. 以下程序的输出结果是______。 main() { int i, k,a[10],p[3]; k=5; for(i=0;i<10;i++) a[i]=i; for(i=0;i<3; i++) p[i]=a[i*(i+1)]; for(i=0;i<3; i++) k+=p[i]*2; printf("%d\n",k); } A、20 B、21 C、22 D、23 答案:B 知识点:for语句和用for语句构成的循环结构 245. 设变量已正确定义,则以下能正确计算f=n!的程序段是______。 A、f=0; for(i=1;i<=n;i++) f*i; B、f=1; for(i=1;i C、f=1; for(i=n;i>1;i++) f*i; D、f=1; for(i=n;i>=2;i--) f*=i; 答案:D 知识点:for语句和用for语句构成的循环结构 247. 若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c 均已赋值(c大于0) s=a; for(b=1;b<=c;b++) s=s+1; 则上述程序段功能等价的赋值语句是______。 A、s=a+b; B、s=a+c; C、s=s+c; D、s=b+c; 答案:B 知识点:for语句和用for语句构成的循环结构 248. 有以下程序 main() { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf("%d\n",s); } 程序执行后的输出结果是______。 A、自然数1~9的累加和 B、自然数1~10的累加和 C、自然数1~9中奇数之和 D、自然数1~10中偶数之和 答案:D 知识点:for语句和用for语句构成的循环结构 249. 有如下程序 main() { int i,sum; for(i=1;i<=3;sum++) sum+=i; printf("%d\n",sum); } 该程序的执行结果是______。 A、6 B、3 C、死循环 D、0 答案:C 知识点:for语句和用for语句构成的循环结构 250. 若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是______。 for(i=5;i;i--) for(j=0;j<4;j++){ …… } A、20 B、25 C、24 D、30 答案:A 知识点:for语句和用for语句构成的循环结构 251. 有以下程序 main() { int k=5; while(--k) printf("%d",k-=3); printf("\n"); } 执行后的输出结果是______。 A、1 B、2 C、4 D、死循环 答案:A 知识点:while语句和while语句构成的循环 252. 以下程序的输出结果是______。 main() { int num=0; while(num<=2) { num++; printf("%d\n",num); } } 答案:B 知识点:while语句和while语句构成的循环 253. 以下程序中,while循环的循环次数是______。main() { int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; } …… } A、1 B、10 C、6 D、死循环,不能确定次数 答案:D 知识点:while语句和while语句构成的循环 254. t为int类型,进入下面的循环之前,t的值为0 while(t=1) { …… } 则以下叙述中正确的是______。 A、循环控制表达式的值为0 B、循环控制表达式的值为1 C、循环控制表达式不合法 D、以上说法都不对 答案:B 知识点:while语句和while语句构成的循环 255. 有如下程序 main() { int n=9; while(n>6) { n--; printf("%d",n); } } 该程序段的输出结果是______。 A、987 B、876 C、8765 D、9876 答案:B 知识点:while语句和while语句构成的循环 256.有以下程序 main() {int p[7]={11,13,14,15,16,17,18}; int i=0,k=0; while(i<7&&p[i]%2) { k=k+p[i]; i++; } printf("%d\n",k); } 执行后输出结果是______。 A、58 B、56 C、45 D、24 答案:D 知识点:while语句和while语句构成的循环 257. 要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是 ______。 A、while((ch=getchar())!='N' printf("%c",ch) ; B、while(ch=getchar()!='N' printf("%c",ch) ; C、while(ch=getchar())=='N' printf("%c",ch); D、while((ch=getchar())=='N' printf("%c",ch); 答案:A 知识点:while语句和while语句构成的循环 258. 有以下程序段 int k=0; while(k=1) k++; while循环执行的次数是______。 A、无限次 B、有语法错,不能执行 C、一闪也不执行 D、执行1次 答案:A 知识点:while语句和while语句构成的循环 259. 以下程序的输出结果是______。 main() { int n[3][3],i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) n[i][j]=i+j; for(i=0;i<2;i++) for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j]; printf("%d \n",n[i][j]); } A、14 B、0 C、6 D、值不确定 答案:C 知识点:循环结构的嵌套 260. 有以下程序 main() { int i,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=4 B、x=8 C、x=6 D、x=12 答案:B 知识点:循环结构的嵌套 261. 下列程序的输出结果是______。main() { int i,j,m=0,n=0; for(i=0;i<2;i++) for(j=0;j<2;j++) if(j>=i) m=1; n++; printf("%d \n",n); } A、4 B、2 C、1 D、0 答案:C 知识点:循环结构的嵌套 262. 有以下程序 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); } 程序执行后的输出结果是______。A、n=5 B、n=2 C、n=3 D、n=4 答案:D 知识点:循环结构的嵌套 263. 阅读下列程序: main() { int n[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2; for(i=0;i for(j=0;j n[j]=n[i]+1; printf("%d\n",n[1]); } 下述程序运行后输出结果是______。 A、2 B、1 C、0 D、3 答案:D 知识点:循环结构的嵌套 287. 若有定义和语句: char s[10]:s="abcd";printf("%s\n",s); 则结果是(以下u代表空格) ______。 A、输出abcd B、输出a C、输出abcduuuuu D、编译不通过 答案:D 知识点:用一个一维字符数组来存放字符串 295. 函数调用:strcat(strcpy(str1,str2),str3)的功能是 ______。 A、将串str1复制到串str2中后再连接到串str3之后 B、将串str1连接到串str2之后再复制到串str3之后 C、将串str2复制到串str1中后再将串str3连接到串str1之后 D、将串str2连接到串str1之后再将串str1复制到串str3中 答案:C 知识点:用于字符串处理的函数 298. 以下正确定义字符串的语句是______。 A、char str[]={'\064'}; B、char str="\x43"; C、char str=''; D、char str[]="\0"; 答案:D 知识点:字符串的输入和输出 305. 有以下程序 main() { char s[]="\n123\\"; printf("%d,%d\n",strlen(s),sizeof(s)); } 执行后输出结果是______。 A、赋初值的字符串有错 B、6,7 C、5,6 D、6,6 答案:C 知识点:字符串数组 308. 若有以下定义和语句 char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+'A'); 则输出结果是: ______。 A、2,M B、3,E C、2,E D、输出项与对应的格式控制不一致,输出结果不确定 答案:B 知识点:字符变量 309. 已定义c为字符型变量,则下列语句中正确的是______。 A、c='97'; B、c="97"; C、c=97; D、c="a"; 答案:C 知识点:字符变量 310. 数字字符0 的ASCII值为48,若有以下程序______。main() { char a='1',b='2'; printf("%c,",b++); printf("%d\n",b-a); } 程序运行后的输出结果是 A、3,2 B、50,2 C、2,2 D、2,50 答案:C 知识点:字符型常量 311.以下程序的输出结果是______。 main() { char c='z'; printf("%c",c-25); } A、a B、Z C、z-25 D、y 答案:A 知识点:字符型常量 312. 若变量a是int类型,并执行了语句:a='A'+1.6;,则正确的叙述是______。 A、a的值是字符C B、a的值是浮点型 C、不允许字符型和浮点型相加 D、a的值是字符'A'的ASCII值加上1 答案:D 知识点:字符型常量 313. 下列程序执行后的输出结果是______。 main() { int x='f'; printf("%c \n",'A'+(x-'a'+1)); } A、G B、H C、I D、J 答案:A 知识点:字符型常量 314. 以下程序的输出结果是______。 main() { int i; for(i='A';i<'I';i++,i++) printf("%c",i+32); printf("\n"); } A、编译不通过,无输出 B、aceg C、acegi D、abcdefghi 答案:B 知识点:字符型常量 315. 有如下程序 #include main() { printf("%d\n",NULL); } 程序运行后的输出结果是______。 A、0 B、1 C、-1 D、NULL没定义,出错 答案:A 知识点:字符型常量 316. 设有说明语句:char a='\72';则变量a______。A、包含1个字符B、包含2个字符 C、包含3个字符 D、说明不合法 答案:A 知识点:字符型常量 317. 下面程序的功能是输出以下形式的金字塔图案是: * *** ***** ******* main() { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++) printf(" "); for(j=1;j<=____;j++) printf("*"); printf("\n"); } } 在下划线处应填入的是______。 A、i B、2*i-1 C、2*i+1 D、i+2 答案:B 知识点:for循环嵌套 318. 有以下程序 main() {int num[4][4]={{1,2,3,4},{5,6,7,8}, {9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=1;j<=i;j++) printf("%4c",' '); for(j=____;j<4;j++) printf("%4d",num[i][j]); printf("\n"); } } 若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是______。 A、i-1 B、I C、i+1 D、4-i 答案:B 知识点:for循环嵌套 319. 有以下程序 main() { int a=1,b; for(b=1;b<=10;b++) { if(a>=8) break; if(a%2==1) a+=5; continue;} a-=3; } printf("%d\n",b); } 程序运行后的输出结果是______。 A、3 B、4 C、5 D、6 答案:B 知识点:程序分析 320. 以下程序的功能是:给r输入数据后计算半径为r的圆的面积s程序在编译时出错。 main() /* Bejinning */ { int r; float s; scanf("%d",&r); s=*π*r*r; printf("s=%f\n",s); } 出错的原因是______。 A、注释语句书写位置错误 B、存放圆半径的变量r不应该定义为整形 C、输出语句中格式描述符非法 D、计算圆面积的赋值语句中使用了非法变量 答案:D 知识点:程序分析 322. 要求以下程序的功能是计算: s=1+1/2+1/3+...+1/10 main() { int n; float s; s=1.0; for(n=10;n>1;n--) s=s+1/n; printf("%6.4f\n",s); } 程序运行后输出结果错误,导致错误结果的程序运行是______。 A、s=1.0; B、for(n=10;n>1;n--); C、s=s+1/n; D、printf("%6.4f\n",s); 答案:C 知识点:程序分析 326. 有以下程序 main() { int a,b,d=25; a=d/10%9; b=a&&(-1); printf("%d,%d\n",a,b); } 程序运行后的输出结果是______。 A、6,1 B、2,1 C、6,0 D、2,0 答案:B 知识点:程序分析 328. 若执行下面的程序时从键盘上输入3和4,则输出是______。 main() { int a,b,s; scanf("%d %d",&a,&b); s=a; if(a s=b; s=s*s; printf("%d\n",s); } A、14 B、16 C、18 D、20 答案:B 知识点:程序分析 329. 以下程序的输出结果是______。 #include main() { int i; for(i=1;i<5;i++) { if(i%2) printf("*"); else continue; printf("#"); } printf("$\n"); } A、*#*#*#$ B、#*#*#*$ C、*#*#$ D、#*#*$ 答案:C 知识点:程序分析 331. 以下程序的输出结果是______。 main() { int i; for(i=1;i<6;i++) { if(i%2) { printf("#"); continue; } printf("*"); } printf("\n"); } A、#*#*# B、##### C、***** D、*#*#* 答案:A 知识点:程序分析 332. 以下程序的输出结果是______。 #include main() { int i=0,a=0; while(i<20) { for(;;) { if(i%10==0) break; else i--; } i+=11; a+=i; } printf("%d\n",a); } A、21 B、32 C、33 D、11 答案:B 知识点:程序分析 333. 下面程序的输出结果是______。 #include main() { int i=2; printf("%d",f(i,i+1)); } int f(int a,int b) { int c; c=a; if(a>b) c=1; else if(a==b) c=0; else c=-1; return(c); } A、-1 B、0 C、1 D、2 答案:A 知识点:程序分析 336. 下面的程序运行结果为______。 main() { int x=3,y=0,z=0; if(x=y+z) printf("* * * *"); else printf("# # # #"); } A、有语法错误不能通过编译 B、输出* * * *。 C、可以通过编译,但是不能通过连接,因而不能运行。 D、输出# # # #。 答案:D 知识点:程序分析 337. 若执行以下程序时从键盘上输入9,则输出结果是 ______。 main() { int n; scanf("%d",&n); if(n++<10) printf("%d\n",n); else printf("%d\n",n--); } A、11 B、10 C、9 D、8 答案:B 知识点:程序分析 339. 下列条件语句中,功能与其他语句不同的是______。 A、if(a) printf("%d\n",x); else printf("%d\n",y); B、if(a==0) printf("%d\n",y); else printf("%d\n",x); C、if(a!=0) printf("%d\n",x); else printf("%d\n",y); D、if(a==0) printf("%d\n",x); else printf("%d\n",y); 答案:D 知识点:if语句 340. 有以下程序 #include main() {charp[]={'a','b','c'}; char q[10]={'a','b','c'}; printf("%d%d\n",strlen(p),strlen(q)); } 以下叙述中正确的是______。 A、在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3 B、由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3 C、由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3 D、由于p和q的数组中都没有字符串结束符,故长度不能确定 答案:B 知识点:一维数组 341.有以下程序 main() {char p[]={'a','b','c'},q[]="abc"; printf("%d%d\n",sizeof(p),sizeof(q)); }; 程序运行后和输出结果是______。 A、4 4 B、3 3 C、3 4 D、4 3 答案:C 知识点:一维数组 342. 当把以下四个表达式用作if语句的控制表达式时,有一个选项含义不同,这个选项是______。 A、K%2 B、K%2==1 C、(K%2)!=0 D、!K%2==1 答案:D 知识点:表达式 343. 以下叙述中错误的是______。 A、C语句必须以分号结束 B、复合语句在语法上被看作一条语句 C、空语句出现在任何位置都不会影响程序运行 D、赋值表达式末尾加分号就构成赋值语句 答案:C 知识点:概念 344. 若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是______。 A、++x,y=x-- B、x+1=y C、x=x+10=x+y D、double(x)/10 答案:A 知识点:算术表达式 345. 以下叙述中正确的是______。 A、C程序中注释部分可以出现在程序中任意合适的地方 B、花括号“{”和“}”只能作为函数体的定界符 C、构成C程序的基本单位是函数,所有函数名都可以由用户命名 D、分号是C语言之间的分隔符,不是语句的一部分 答案:A 知识点:概念 填空复习题 1. 以下程序的输出结果是______。 main() { int a=0; a+=(a=8); printf("%d\n",a); } 答案:16 知识点:赋值表达式 2. 若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是______。 c=(a-=(b-5)); c=(a % 11)+(b=3); 答案:3 知识点:赋值表达式 3. 以下程序运行后的了输出结果是______。 main() { int a=1,b=2,c=3; if(c=a) printf("%d\n",c); else printf("%d\n",b); } 答案:1 知识点:赋值表达式 4. 若有语句 int i=-19, j=i%4; printf("%d\n",j); 则输出结果是______。 答案:-3 知识点:算术表达式 7. 设y 是int型变量,请写出判断y为奇数的关系表达式______。 答案:y%2 知识点:算术表达式 12. 下面程序的输出是______。 main() { int x=2; while(x--); printf("%d\n", x);} 答案:-1 知识点:自加、自减运算符和逗号运算符 19. 以下程序的输出结果是______。 void fun() { static int a=0; a+=2; printf("%d",a); } main() { int cc; for(cc=1;cc<4;cc++) fun(); printf("\n") } 答案:246 知识点:函数的调用 21. 若有以下程序 int f(int x,int y) { return(y-x)*x; } main() { int a=3,b=4,c=5,d; d=f(f(3,4),f(3,5)); printf("%d\n",d); } 执行后输出结果是______。 答案:9 知识点:函数的调用 27. 以下程序的输出结果是______。main () {int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0; for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1]; printf("%d\n",s); } 答案:30 知识点:二维数组的定义和二维数组元素的引用 32. 以下程序段的输出结果是______。 int i=9; printf("%o\n",i); 答案:11 知识点:数据输出 34. 有以下程序 #include main() { char ch1,ch2; int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-'0'; n2=n1*10+(ch2-'0'); printf("%d\n",n2); } 程序运行时输入:12<回车>,执行后输出结果是 ______。 答案:12 知识点:数据输入 36. 以下程序运行后的输出结果是______。 main() {int a=1,b=3,c=5; if (c=a+b) printf("yes\n"); else printf("no\n"); } 答案:yes 知识点:if语句和用if语句构成的选择结构 37. 若从键盘输入58,则以下程序输出的结果是______。main() { int a; scanf("%d",&a); if(a>50) printf("%d",a); if(a>40) printf("%d",a); if(a>30) printf("%d",a); } 答案:585858 知识点:if语句和用if语句构成的选择结构 39. 以下程序的输出结果是______。 main() { int a=5,b=4,c=3,d; d=(a>b>c); printf("%d\n",d); } 答案:0 知识点:关系运算和逻辑运算 40. 若有以下程序 main() { int p,a=5; if(p=1!=0) printf("%d\n",p); else printf("%d\n",p+2); } 执行后输出结果是______。 答案:1 知识点:关系运算和逻辑运算 41. 表示条件:10 ______。 答案:(x>10&&x<100||x<0) 知识点:关系运算和逻辑运算 42. 若已知a=10,b=20,则表达式!a 知识点:关系运算和逻辑运算 43. 表示“整数x的绝对值大于5”时值为“真”的C语言表达式是______。 答案:x>5||x<-5 知识点:关系运算和逻辑运算 45. 以下程序运行后的输出结果是______。 main() {int p=30; printf("%d\n",(p/3>0 ? p/10:p%3)); } 答案:3 知识点:条件表达式构成的选择结构 46. 以下程序运行后的输出结果是______。 main() { int x,a=1,b=2,c=3,d=4; x=(ax)?x:d; printf("%d\n",x); } 答案:1 知识点:条件表达式构成的选择结构 49. 有以下程序 main() { int t=1,i=5; for(;i>=0;i--) t*=i; printf("%d\n",t); } 执行后输出结果是______。 答案:0 知识点:for语句和用for语句构成的循环结构 50. 以下程序的输出结果是______。 main() { int s,i; for(s=0,i=1;i<3; i++,s+=i); printf("%d\n",s); } 答案:5 知识点:for语句和用for语句构成的循环结构 53. 以下程序运行后的输出结果是______。 main() {int p[7]={11,13,14,15,16,17,18}; int i=0,j=0; while(i<7&&p[i]%2==1)j+=p[i++]; printf("%d\n",j); } 答案:24 知识点:while语句和while语句构成的循环 55. 执行以下程序后,输出'#'号的个数是______。 #include main() {int i,j; for (i=1;i<5;i++) for (j=2;j<=i;j++) putchar('#'); } 答案:6 知识点:循环结构的嵌套 60. 以下程序的输出结果是______。 main() { char s[]="abcdef"; s[3]='\0'; printf("%s\n",s); } 答案:abc 知识点:用一个一维字符数组来存放字符串 64. 下列程序段的输出结果是______。 main() { char b[]="Hello,you" b[5]=0; printf("%s\n",b); } 答案:Hello 知识点:字符串数组 68. 以下程序运行后的输出结果是______。 main() {char m; m='B'+32; printf("%c\n",m); } 答案:b 知识点:字符型常量 69. 已知字母A的ASCII码为65.以下程序运行后的输出结果是______。 main() {char a,b; a=’A’+’5’-‘3’; b=a+’6’-‘2’; printf(“%d%c\n”,a,b); } 答案:67G 知识点:字符型常量 71. 若有以下程序 main() { char a; a='H'-'A'+'0'; printf("%c\n",a); } 执行后输出结果是______。 答案:7 知识点:字符型常量 72. 以下程序的功能是计算:1+12+123+1234+12345。请填空。 Main() {int t= 0,s=0,I; for (I=1;I<=5;I++) {t=I+______;s=s+t;} printf(“s=%d\n”,s); } 答案:t*10~10*t 知识点:程序分析 74. 以下函数的功能是:求x的y次方,请填空。 double fun(double x,int y) { int i; double z; for(i=1,z=x;i return z; } 答案:x 知识点:程序分析 一选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式 (a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c; printf("d=%d",d); } A d=70 B d=80 C d=140 D d=700 10.已知职工记录描述如下,在Turbo C中,系统为变量w分配()字节的空间。 struct worker { int no; char name[20]; char sex; union { int day; int month; int year;}birth; } w; A 29 B 20 C 25 D 6 11.设有以下定义,值为5的枚举常量是()。enum week{sun,mon=4,tue,wed,thu,fri,sat} w; A tue B sat C fri D thu 12.下面选项中正确的赋值语句是(设char a[5],*p=a;)()。 A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd"; 13.设有以下程序段,则值为6的表达式是()。struct st { int n; struct st *next;}; static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p; p=&a[0]; A p++->n B ++p->n C p->n++ D (*p).n++ 14.C语言中的文件类型只有()。 A 索引文件和文本文件两种 B 文本文件一种 C 二进制文件一种 D ASCII码文件和二进制文件两种二判断对错,对的划“√”,错的划“×”(5分,每小题0.5分) 1.在Turbo C中,整型数据在内存中占2个字节。()2.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。() 3.break语句用在循环体中,可结束本层循环,continue 语句用在循环体中,可结束本次循环。() 4.函数的递归调用不过是一个函数直接或间接地调用它自身。() 5.函数strlen("ASDFG\n")的值是7。() 6.通过return语句,函数可以带回一个或一个以上的返回值。() 7.结构体类型只有一种。() 8.char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。() 9.若有定义:char *p(char a[10]);则p是函数名。() 10.用fopen("file","r+");打开的文件"file"可以进行修改。() 三写出下列程序的运行结果(10分,每小题2分)1.float average (float array[10]) { int i; float aver,sum=array[0]; for (i=1;i<10;i++) sum=sum+array[i]; aver=sum/10; return(aver); } main( ) { float score[10]= {89,67.5,78,91,56,82.5,65,70,79,88},aver; int i; aver=average (score); printf (“average score is %5.2f\n”,aver); } 2.main( ) { char a[5]={‘A’,‘B’,‘C’,‘D’,‘E’},*p=a,**pa; for(p=0;p printf(“%2c”,*p); printf(“\n”); printf(“%2c\n”,**(pa=&p)); } 3.main( ) { int a,b,s=0; for(a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) {b+=3; continue; } b-=5; } printf(“a=%d\tb=%d\n”,a,b); } 4.main() { printf(“main( ) :%d\n”,fact(5)); fact(-5); } fact(int value) { int f; if(value<0) { printf(“Arg error\n"); return(-1); } else if(value==1||value==0) f=1;
正在阅读:
大学C语言期末考试题库试题及答案汇总04-30
风波作文450字06-24
有趣的鸡蛋壳作文500字06-14
窗外的小草作文350字07-14
寻蛋记作文350字06-30
龙峰塔游记作文600字06-30
淘宝直通车出价技巧汇总03-20
行政执法考试题库05-04
那流逝的时光作文06-17
- 七年级地理上册(湘教版)期中试卷
- 化学九年级上鲁教版5.3 化学反应中的有关计算复习 (新版)鲁教版
- 河南省郑州智林学校2015届高三12月月考历史试题
- 最新电力系统分析课后作业题及练习题
- 部编版历史七年级下册课后练习:第6课 北宋的政治
- 2017年齐鲁工业大学材料科学与工程学院641高分子化学考研强化模拟题
- 山东省日照市莒县2015-2016学年八年级期末地理试卷.doc
- 新编高考地理通用版二轮专题复习创新 考前适应性仿真训练:(六) Word版含答案
- 2012年6月中国抽油烟机市场分析报告
- 2013年合肥写字楼市场深度研究分析报告
- 2018年郑州大学新闻与传播学院625新闻传播基础(含中外新闻史)之理论新闻传播学导论考研基础五套测试题
- 2018年安徽师范大学物理与电子信息学院906普通物理学Ⅱ(电磁学和光学)考研核心题库
- 2020年人教版九年级语文上册第二次月考试题及答案(精编)
- 2014年司法考试试题及答案含答案和详细解析
- 2020年遇见中考作文(推荐4篇)
- 新版自考毛邓三第(1-14)章练习题加答案(全套)
- 煤矿安全例会会议纪要与煤矿安全办公会议纪要合集
- 人教版高中数学(必修五)教案
- 吴汉东《知识产权法》(第3版)笔记和课后习题(含考研真题)详解-商标权的保护(圣才出品)
- 高考英语二轮专题训练模块3应用文写作第1讲邀请信申请信模拟精练巧押题含解析新人教版