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,0×11 B、17,17,17
C、17,0×11,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<n;i++) sum+=x[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));
|
|
|
}
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<y) {t=x; x=y; y=t;}
}
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<y) return 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]);
|
|
|
}
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<k;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,0×11 B、17,17,17
C、17,0×11,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<n;i++) sum+=x[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));
|
|
|
}
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<y) {t=x; x=y; y=t;}
}
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<y) return 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]);
|
|
|
}
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<k;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
知识点:数据输入