1、C语言程序的基本单位是( )
A) 程序行B) 语句C) 函数D) 字符
2、C语言程序的三种基本结构是( )
A、顺序结构,选择结构,循环结构
B、递归结构,循环结构,转移结构
C、嵌套结构,递归结构,顺序结构
D、循环结构,转移结构,顺序结构、
3、C语言可执行程序的开始执行点是( )
A) 程序中第一条可执行语句B) 程序中第一个函数
C) 程序中的main函数D) 包含文件中的第一个函数
4、C语言中,运算对象必须是整型数的运算符是( )
A) % B) \ C) %和\ D) *
5、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是()
A a=a+b,b=a-b,a=a-b;
B t=a;a=b;b=t;
C a=t;t=b;b=a;
D t=b;b=a;a=t;
6、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()
A) -3 B) 9 C) -12 D) 6
7、若有定义语句:int x=12,y=8,z;在其后执行语句z=0.9+x/y,则z的值为()
A)1.9 B)1 C)2 D)2.4
8.以下不正确的叙述是(  )
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入
实型数值
9. 已知表达式x=(a=3,a*3),则x的值是()
A 3
B    6
C 18
D 9
10. 以下程序的输出结果是()
main()
{float x=3.6;
print(“x=%f,i=%d”,x,i);printf函数的执行顺序
}
A、x=3.600000,i=4
B、x=3,i=3
C、x=3.600000,i=3
D、x=3,i=3.600000
11、若有定义:int a,b;通过语句scanf("%d:%d",&a,&b);能把整数3赋给变量a ,5
赋给变量b的输入数据是(    )
A)3 5 B)3,5 C)3:5 D)35
12、表达式:10!=9的值是
A) true B) 非零值C) 0 D) 1
13.若w=1,x=2,y=3,z=4,则表达式w<x?w:y<z?y:z的值是:(    )
A.4
B.3
C.2
D.1
14、表示关系x<=y<=z的c语言表达式为
A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z)
C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)
15、设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
16、语句:printf("%d",(a=2)&&(b= -2));的输出结果是(    )
A) 无输出B) 结果不确定C) -1 D) 1
17、下列说法中正确的是(    )。
A、在switch语句中一定要使用break语句
B、在switch语句中不一定要使用break语句
C、break语句是switch语句的一部分
D、break只能用于switch语句中、
18、若执行了语句:float x=1008; int y=15; 则表达式(int)(x+y)%7/17的值为(    )
A)23 B)1 C)0 D)无法确定
19. 下面程序段()
if(!y) {printf(“*”); continue;}
printf(“#”);}
while(1<=x<=2);
A.将输出##
B.将输出##*
C.是死循环
D.含有不合法的控制表达式
20、有以下程序段int k=0 while(k=1)k++; while 循环执行的次数是
A) 无限次B) 有语法错,不能执行
C) 一次也不执行D) 执行1次
21、C语言中数组下标的下限是( )。
A、1
B、0
C、视具体情况
D、无固定下限
22、假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内
存中所占字节数是
A) 3 B) 6 C) 10 D) 20
23. 以下程序的输出结果是()。
main()
{int s[10]={1,2,3,4,5,6,7,8,9,10};
printf("%d\n",s[10]);
}
A、10
B、9
C、11
D、不确定
24.以下程序运行后,输出结果是()
main()
{int a[3][3]={{3,2,1},{4,5,6},{2,9,2}};
int i , j, s=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i = = 2-j) s=s+a[i][j];
printf("s=%d",s);
}
A    6
B 7
C 8
D 9
25.一个二维数组int student[5][6], 其第2行第3列元素的正确表示是:()
A student [3][2]
B student [2][3]
C student [2,3]
D student [1][2]
26.若有说明: int a[10];则对a数组元素的正确引用是( )
A.a[10]
B. a[3.5]
C. a(5)
D. a[10-10]
27. 以下程序的主函数中调用了在其前面定义的fun函数#include <stadio. h>
void main()
{double a[15],k;
k=fun(a);
}
则下列选项中错误的fun函数首部是( )
A)double fun (double a[15])
B)double fun (double *a)
C)double fun(double a[])
D)double fun(double a)
28.下面程序段的运行结果是()(□代表空格)
char c[5]={‘a’,’b’,’\0’,’c’,’\0’};
printf(“%s”,c);
A.’a”b’
B.ab
C.ab□c
D.abc
29.给出以下定义:
char x[]="abcdefg";
char y[]={'a','b','c','d','e','f','g'};
则正确的叙述为()
A)数组X和数组Y等价
B)数组X的长度大于数组Y的长度
C)数组x和数组Y的长度相同
D)数组X的长度小于数组Y的长度
30.下面程序段的运行结果是()
char a[7]=”abcdef”;
char b[4]=”ABC”;
strcpy(a,b);
printf(“%c”,a[5]);
A.空格
B.\0
C.e
D.f
31.判断字符串s1是否大于字符串s2,应当使用()
A. if(s1>s2)
B. if(strcmp(s1,s2))
C. if(strcmp(s2,s1)>0)
D. if(strcmp(s1,s2)>0)
32.若有以下程序片段: char str[]="ab\n\0\\\""; printf("%d",strlen(str));
上面程序片段的输出结果是
A)3 B)4 C)6 D)12
33、在C语言中,若对函数类型未说明,则函数的隐含类型是____类型
A) void B) double C) int D) char
34、C语言中函数返回值的类型是由()决定。
A) return语句中的表达式类型B) 调用函数的主调函数类型
C) 调用函数时临时D) 定义函数时所指定的函数类型
35、以下说法不正确的是()
C语言规定:
A.实参可以是常量、变量或表达式
B.形参可以是常量、变量或表达式
C.实参可以为任意类型
D.形参应与其对应的实参类型一致
36、当调用函数时,实参是一个数组名,则向函数传送的是( )
A) 数组的长度B) 数组的首地址
C) 数组每一个元素的地址D) 数组每个元素中的值
37.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。A函数调用可以作为独立的语句存在B函数调用可以作为一个函数的实参
C函数调用可以出现在表达式中D函数调用可以作为一个函数的形参
38. 在C语言程序中以下正确的描述是()
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和调用均可以嵌套