大学c语言期末考试试题及答案最新
c语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。下面小编在这里为大家精心整理了,希望对同学们有所帮助,仅供参考。
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 -maxturbo
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("####")
elseprintf("&&&&");
上面程序片段的输出结果是______。
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=2024,y=2024;
printf("%d\n",(x,y));
则以下叙述中正确的是______。
A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B、运行时产生错误信息
C、输出值为2024
D、输出值为2024
答案: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() { inta[]={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() { inta[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、5430D、输出值不定 答案: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() { charw[][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 知识点:数据输入 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("####") elseprintf("&&&&"); 上面程序片段的输出结果是______。 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=2024,y=2024; printf("%d\n",(x,y)); 则以下叙述中正确的是______。 A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B、运行时产生错误信息 C、输出值为2024 D、输出值为2024 答案: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() { inta[]={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() { inta[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、5430D、输出值不定 答案: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() { charw[][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 【大学c语言期末考试试题及答案最新】相关推荐文章: 最新大学职业规划800字(14篇) 最新个人自荐信大学(14篇) 最新大学三年规划(三篇) 2024年《语言的魅力》课文(5篇) 最新大学编辑部工作计划(十三篇)