6. 以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);(C)。【6】
A、3次
B、循环次数不定 C、4次 D、是无限循环
7. 以下程序的执行结果是(B)。【6】 main()
{ int num = 0;
while( num <= 2 ) { num++; printf( \
A、0,1,2 B、1,2,3, C、1,2,3,4, D、1,2,
8. 以下不能正确进行字符串赋初值的语句是(A)。【7】
A、char str[5]=\
B、char str[5]={'g','o','o','d'}; C、char *str=\D、char str[]=\
9. 函数调用:strcat(strcpy(str1,str2),str3)的功能是(D)。【7】
A、将串str1复制到串str2中后再连接到串str3之后 B、将串str2连接到串str1之后再将串str1复制到串str3中 C、将串str1连接到串str2之后再复制到串str3之后
D、将串str2复制到串str1中后再将串str3连接到串str1之后
10. 以下函数的类型是(C)。【8】 fff(float x) {
return 5; }
A、void 类型
B、与参数x的类型相同 C、int类型 D、无法确定
11. 设有如下函数【8】 fac(int x) {
float y=1.0; return(x*y);
}
则函数的类型为(A).
A、int型 B、float型 C、无法确定 D、void型
12. 设有宏定义#define PI 3.14 和#define S(r) PI*r*r,则S(2)的值为(B). 【8】
A、6.28 B、12.56 C、3.14 D、9.42
13. 下列关于指针定义的描述,错误的是(A)。【9】
A、指针是一种变量,该变量用来存放某个变量的值 B、指针是一种变量,该变量用来存放某个变量的地址值 C、指针变量的类型与它所指向的变量类型一致 D、指针变量的命名规则与标识符相同
14. 以下程序的输出结果是(A). 【9】 main()
{char str[ ]=\
A、68
B、不确定的值 C、字符D的地址 D、0
15. 对结构体类型的变量的成员的访问,无论数据类型如何都可使用的运算符是(B)。【10】
A、& B、. C、* D、->
单选题
下列关于单目运算符++、--的叙述中正确的是(D)。
A、它们的运算对象可以是int型变量,但不能是double型变量和float型变量 B、它们的运算对象可以是任何变量和常量
C、它们的运算对象可以是char型变量和int型变量,但不能是float型变量 D、它们的运算对象可以是char型变量、int型变量和float型变量
执行下列程序后,其输出结果是(D)。 main()
{int a=9; a+=a-=a+a;
printf(\}
A、18 B、-9 C、9 D、-18
打印语句printf(\在屏幕上正确的输出形式是(C).
A、sTUDENDS B、TUDENTS C、STUDENT D、sTUDENTS
已知键盘输入a=4,b=3,下面程序输出的结果是(C). main()
{ int a,b,s;
scanf(\ s=a;
if(a
printf(\}
A、9 B、13 C、16 D、15
若给定条件表达式(m)?(a++):(a--),则其中表达式m(B)。
A、和(m==0)等价 B、和(m!=0)等价 C、和(m==1)等价 D、和(m!=1)等价
执行语句 for(i=1;i++<4;); 后变量 i 的值是(B)。
A、3 B、5 C、4 D、不定
以下描述中正确的是(C)。
A、由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B、do-while 循环中,根据情况可以省略 while
C、在 do-while 循环体中,必须有能使循环退出的操作。
D、do-while 循环由do开始,用while结束,在 while(表达式)后面不能写分号
int a[10];合法的数组元素的最小下标值为(D)。
A、10 B、9 C、1 D、0
以下正确的函数定义是(C).
A、double fun(int x, int y) { z=x+y; return z;} B、fun(x, y) { int x, y; double z; z=x/y; return z;} C、float f(int x, int y) {float z; z=x/y; return z;} D、fun(int x, y) { int z; return z; }
char a1[]=\将a1串连接到a2串后面的语句是(A)。
A、strcat(a2,a1); B、strcat(a1,a2); C、strcpy(a1,a2); D、strcpy(a2,a1);
若有 char s1[]=\则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是(C)。
A、if(strcmp(s2,s1)>0)puts(s2); B、if(strcmp(s2,t)>0)puts(s2); C、if(strcmp(s1,t)>0)puts(s2); D、if(strcmp(s1,s1)>0)puts(s2);
已知有宏定义#define SQR(a) 2*a*a,则SQR(3+4)的值为(A).
A、22 B、32 C、98 D、18
若有说明:int *p,m=5,n;以下正确的程序段是(D)。
A、scanf(\B、p=&n;scanf(\C、p=&n;scanf(\D、p=&n;scanf(\
char h,*s=&h;可将字符H通过指针存入变量h中的语句是(A)。
A、*s='H'; B、s='H' C、*s=H; D、s=H;
定义结构体的关键字是(A)。
A、struct B、typedef C、enum D、union
单选
下述正确的C语言常量是:(C).
A、E2 B、5.0E C、3e-3 D、1.5E2.5
若有定义:int a=7;float x=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是(D)。
A、0.000000 B、2.750000 C、3.500000 D、2.500000
根据下面的程序,使i=123,c1='A',c2='B'哪一种是正确的键盘输入方法(C). (规定用[CR]表示回车,U表示空格) main() {
int i;
char c1,c2;
scanf(\}
A、123AUB[CR] B、123UAUB[CR] C、123AB[CR] D、123[CR]AB[CR]
下列程序段的输出结果为(B)。
int a=7,b=9,t; t=a*=a>b?a:b; printf(\
A、49 B、63 C、7 D、9
int a=1,b=2,c=3; if(a>c)b=a;a=c;c=b;则c的值为(C)。
A、1