=NULL)fprintf(fp,”%s",str[0]); fclose(fp); fp=fopen(”test、txt",”w”); if(fp!
=NULL) fprintf(fp,"%s”,str[1]); fclose(fp);}
A、first
B、second
C、first second
D、secondfirst
4、若有以下定义:
struct node{intdata; structnode*next;}structnode*head,*p;已建立如下图所示得链表:
p ↓ ┌──┬──┐ ┌──┬──┐ ┌──┬──┐head→│data│next┼→│data│next┼→、、、→│data│NULL│ └──┴──┘└──┴──┘ └──┴──┘能删除指针p所指向结点得程序段就是()。
A、 p =p->next;head—>next=p—>next; free(p);
B、free(p); p=p—〉next;head-〉next=p-〉next;
C、head->next=p-〉next;free(p);
D、 free(p);head—〉next=p—〉next;
5、若有定义:
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;,则( )表达式就是错误得。
A、 a[2]
B、p++
C、p[2]
D、a++
6、下面叙述错误得就是( )。
A、 C源程序可由一个或多个函数组成
B、
C、
D、 注释说明部分只能位于C源程序得最前面
7、()为合法得常量。
A、
B、
C、
D、
8、以下程序得运行结果就是( )。
void main() {ints=0,i=0; while(i<8) {i++; if(i%2==0) continue; s+=i; } printf(”%d\n",s);}
A、36
B、7
C、16
D、12
9、以下程序段得运行结果就是()。
main(){inti=4,j; j=i;pic(i+2*j-2,'*'); putchar('\n'); for(j—=2;j〉=0;j—-){pic(3—j,’');pic(i+2*j,’*');putchar(’\n');}}pic(intlen,charc) {intk; for(k=1;k<=len;k++) putchar(c);}
A、
B、
C、
D、
10、设有以下程序段:
inta=1,b=10,c=1,x; x=a&&b||++c; printf(″%d, %d\n″,x,c); 执行后输出得结果就是( )
A、0,0
B、0,1
C、1,0
D、1,1
11、以下条件语句中(其中s1与s2分别表示C语言得语句),( )与其她三条语句不等价.
A、 if(a)s1; elses2;
B、if(a ==0)s2; elses1;
C、if(a!
=0)s1;elses2;
D、if(a==0)s1;elses2;
12、若已定义 intarr[10];则不能正确引用arr数组元素得就是( ).
A、 arr[0]
B、arr[1]
C、arr[10-1]
D、arr[7+3]
13、若有定义:
int*p,k=4;p=&k;以下均代表地址得就是().
A、k,p
B、&k, &p
C、&k,p
D、k, *p
14、以下程序得运行结果就是( )。
main() { inta[3]={1,2,3}; int*num[3]; int**p,i; for(i=0;i<3;i++) num[i]=&a[i];p=num; printf("%d",**p);}
A、1
B、3
C、&a[0]
D、num
15、以下程序中得循环执行了( )次.#defineN2#define M N+1#defineNUM(M+1)*M/2main(){ int i,n=0;for(i=0;i〈NUM;i++)n++; printf(”%d\n",n);}
A、 5
B、 6
C、8
D、9
16、若有定义:
intx,a,b; 语句x=(a=2,b=3,a+b);运行后,x、a、b得值依次为( )。
A、235
B、 325
C、523
D、5 3 2
17、以下程序运行后,a得值就是( )。
main(){ int a,b; for(a=1,b=1;a<=100;a++){ if(b〉=20)break; if(b%3==1) {b+=3;continue;}b-=5; }}
A、101
B、100
C、8
D、 7
18、下面叙述正确得就是( )。
A、宏展开不占用运行时间,只占用编译时间
B、预处理命令也就是C语句,必须以分号结束
C、一个源程序只能有一个预编译处理命令行
D、宏名必须用大写字母表示
19、若有定义intm=4321,n=123,k=21;语句printf("%4d+%3d+%2d",m,n,k);执行后得输出结果就是( )。
A、 4321432143211231231232121
B、432112321
C、4321+123+21
D、432+123+021
20、( )语句符合C语言语法.
A、
B、
C、
D、
21、已有如下定义与输入语句,charc1,c2;intx;scanf("%c%d%c”,&c1,&x,&c2);若要求x、c1、c2得值分别为9、'K'与’H’,正确得数据输入就是( )。
A、K9H
B、K9 H
C、 K9H
D、9KH
22、
A、
B、
C、
D、
23、若有定义:
struct student{intnum;charsex;intage;}stu1;下列叙述不正确得就是()。
A、student就是结构体类型名
B、 struct student就是结构体类型名
C、stu1就是用户定义得结构体类型变量名
D、 num,sex,age都就是结构体变量stu1得成员
24、有以下程序:
main(){intc; while((c=getchar())!
= ’\n'){switch(c-'2'){ case0:
case1:
putchar(c+4); case2:
putchar(c+4);break; case3:
putchar(c+3);default:
putchar(c+2);break; }} printf(”\n");} 当输入:
247<回车〉,程序得输出结果就是( )。
A、689
B、6689
C、66778
D、66887
25、
A、
B、
C、
D、
26、下面叙述错误得就是( )。
A、
B、
C、 预处理命令行必须以分号结束
D、C源程序中加入一些预处理命令就是为了改进程序设计环境,提高编程效率
27、
A、
B、
C、
D、
28、对二维数组得正确定义就是( )
A、
B、
C、
D、
29、在C语言中,运算符″=″与″==″得功能分别就是( )
A、关系运算与赋值运算
B、关系运算与赋值运算
C、都就是关系运算
D、都就是赋值运算
30、下面叙述错误得就是( )
A、数组中每一个元素都属于同一个数据类型
B、 C语言数组名称就是数组在内存中得首地址
C、C语言数组长度在定义数组时可不作确定
D、C语言规定可逐个引用数组元素但不能一次引用整个数组
31、以下程序段运行后s得值就是( )。
inta[3][3]={1,2,3,4,5,1,2,3,4}; inti,j,s=1;for(i=0;i〈3;i++) for(j=i+1;j〈3;j++)s+=a[i][j];
A、6
B、120
C、7
D、240
32、若有定义:
inta=6,b=7,k=0,t=1;语句(k=a〈b) &&(t=a==b); 运行后,k、t得值分别就是()。
A、00
B、1 1
C、 0 1
D、1 0
33、以下在任何情况下计算平方数时都不会引起二义性得宏定义就是( )。
A、
B、
C、
D、
34、若有下面定义,能打印出字母’L'得语句就是()。
structclass { charname[8];intage;}; structclasss[12]={”Zheng",16,"Lin",18,"Yang”,19,"Guo”,20};
A、 printf("%c\n",s[1]、name[0]);
B、 printf(”%c\n”,s[2]、name[0]);
C、printf("%c\n",s[1]、name);
D、 printf("%c\n”,s[2]、name);
35、设已定义floata=2、0,b=3、0; 使a值为5、0得表达式就是( )。
A、a+=b
B、a*=b+2、0
C、 a/=b+2、0
D、a-=b+2、0
36、以下叙述中正确得就是( )
A、 C源程序中注释部分可以出现在程序中任意合适得地方
B、
C、C源程序编译时注释部分得错误将被发现
D、 构成C源程序得基本单位就是函数,所有函数名都可以由用户命名
37、( )就是正确得数组定义.
A、intn=10,x[n];
B、 int x[10];
C、 int N=10;intx[N];
D、intn;scanf(”%d”,&n);intx[n];
38、以下程序段运行后变量k得值为( )。
int m=7,n=2,k;k=(m^n)<〈1;
A、0
B、 98
C、 20
D、10
39、若定义inta=-5,b=-8,c=-12; 则表达式a>=b||b〈c得值为( )。
A、变量i得值
B、 变量j得值
C、0
D、1
40、执行下面程序段后,输出字符B得个数就是( ) x=0;while(x<=5){ printf("B");x+=2;}
A、0个
B、 3个
C、5个
D、 6个
一、单选(共计100分,每题2、5分)
1、
A、0,0
B、 10,3
C、13,7
D、7,13
2、ﻩ以下程序得运行结果就是( )。
voidmain()ﻩ{ int n=9;ﻩswitch(n--)ﻩ{default:
printf(”%d ”,n++); case 8:
case7:
printf("%d ”,n);break;case6:
printf("%d",n++);ﻩcase5:
printf(”%d",n); }}
A、8
B、ﻩ7
C、 8 9
D、ﻩ87
3、x得值在-20至-5之间为“真”,否则为“假”得正确逻辑表达式为( )。
A、 —20〈x<—5
B、 x>-20&&x<-5
C、 !
(x〉-20) &&!
(x〈—5)
D、 —5〈x〈-20
4、若有定义:
intx=10,y=8,a;则执行语句a=((—-x==y)?
x:
y);后,变量a得值就是( )。
A、8
B、9
C、10
D、0
5、以下程序段运行后s得值就是( ). inta[3][3]={1,2,3,4,5,1,2,3,4};inti,j,s=1;for(i=0;i<3;i++) for(j=i+1;j〈3;j++) s+=a[i][j];
A、6
B、120
C、7
D、 240
6、若有以下定义:
structnode{intdata;structnode*next;}structnode*p;已建立如下图所示得链表:
┌──┬──┐ ┌──┬──┐ ┌──┬──┐ p→│data│next┼ →│data│next┼→、、、→│data│NULL│ └──┴──┘└──┴──┘ └──┴──┘指针p指向第一个结点,能输出链表所有结点得数据成员data得循环语句就是()。
A、while(p!
=NULL){printf(”%d,",p-〉data);p++;}
B、 while(p){printf("%d,",p、data);p=p->next; }
C、 for(; p!
=NULL; p++) printf(”%d,",p->data);
D、for(;p;p=p—〉next) printf("%d,",(*p)、data);
7、若有定义:
inta=6,b=7,k=0,t=1; 语句 (k=a<b)&&(t=a==b);运行后,k、t得值分别就是( )。
A、00
B、11
C、 0 1
D、10
8、以下程序得可执行文件名为abc、exe。
#include #include〈stdlib、h〉voidmain(intargc,char*argv[]){if(argc!
=2) {printf(”Inputerror\n”); exit(1); }printf("Ilove%s\n",argv[1]); }在DOS命令行输入:
abcright<回车〉,则输出结果就是().
A、Inputerror
B、Iloveabc
C、 Ilove right
D、Ilove
9、以下程序得运行结果就是( )。
voidmain() {ints=0,i=0; while(i〈8){ i++; if(i%2==0) continue; s+=i; } printf("%d\n",s); }
A、 36
B、 7
C、 16
D、12
10、以下在任何情况下计算平方数时都不会引起二义性得宏定义就是().
A、
B、
C、
D、
11、以下程序中得循环执行了()次。
#defineN 2#defineMN+1#define NUM(M+1)*M/2main(){inti,n=0; for(i=0;i<NUM;i++)n++; printf("%d\n”,n);}
A、 5
B、6
C、8
D、9
12、
A、
B、
C、
D、
13、C语言整型数据在内存中得代码就是用( )表示得。
A、原码
B、反码
C、补码
D、BCD码
14、以下程序运行后,文件test、txt得内容就是()。
#include
=NULL)fprintf(fp,”%s”,str[0]); fclose(fp); fp=fopen("test、txt",”w”);if(fp!
=NULL) fprintf(fp,”%s”,str[1]); fclose(fp);}
A、first
B、second
C、first second
D、secondfirst
15、以下程序段运行后x得值为()。
inta[8]={1,2,3,4,5,6,7,8},i,x=0; for(i=0;i〈8;i++,i++) x=x+a[i];
A、36
B、 16
C、20
D、18
16、以下程序段得运行结果就是().int s=15;switch(s/4){default:
printf(”Over");case1:
printf("One ”); break;case2:
printf("Two ");}
A、Two
B、OverTwo
C、 OverOne
D、 One
17、以下程序段运行后变量k得值为( )。
int a=3,b=2; intk; k=(—-a==b++)?
a:
b+1;
A、0
B、 1
C、2
D、3
18、以下程序段得运行结果就是( )。
inta[]={1,2,3,4},i,j;j=1;for(i=3;i〉=0;i—-) {a[i]=a[i]*j; j=j*3; } for(i=0;i〈4;i++) printf("%d”,a[i]);
A、 3 69 12
B、 1812 94
C、27 1894
D、5418 94
19、( )语句符合C语言语法。
A、
B、
C、
D、
20、以下程序段得运行结果就是( )。
charstr[3][2]={ 'a',’b','c',’\0’,'e','f’};printf("%s",str[0]);
A、a
B、 abcef
C、abc\0ef
D、abc
21、若有定义:
inta=3,b=2,c=3; 则值为0得表达式就是()。
A、(a-b)==(c/b)
B、a〉=c
C、c-b||a+b&&(b*c-a—c)
D、(b*c—a—c)&&(b*c—a-b)
22、对于以下程序,说法正确得就是( )。
#include〈stdio、h〉main(){FILE*fp;fp=fopen("quiz、txt”,"w”); if(fp!
=NULL) {fprintf(fp,"%s\n","success!
");fclose(fp); printf(”ok!
"); }}
A、程序运行后,当前工作目录下存在quiz、txt文件,其中得内容就是”ok!
"
B、程序运行后,当前工作目录下存在quiz、txt文件,其中得内容就是"success!
"
C、程序运行之前,当前工作目录下一定不存在quiz、txt文件
D、程序运行之前,当前工作目录下一定存在quiz、txt文件
23、在对无符号数得位运算中,操作数左移三位相当于( )。
A、操作数除以6
B、 操作数乘以6
C、操作数除以8
D、操作数乘以
24、若已定义inta=11; 执行以下语句后得输出结果就是( )。
printf("a=%d,a=%o,a=%x\n",a,a,a);
A、a=11,a=11,a=b
B、a=11, a=13,a=b
C、a=11,a=13, a=c
D、a=11, a=12,a=13
25、
A、
B、
C、
D、
26、若有定义 intm=4321,n=123,k=21; 语句printf("%4d+%3d+%2d",m,n,k);执行后得输出结果就是( )。
A、 4321432143211231231232121
B、432112321
C、4321+123+21
D、432+123+021
27、执行下面程序段后,输出字符B得个数就是( ) x=0;while(x<=5){ printf("B”);x+=2;}
A、0个
B、 3个
C、5个
D、 6个
28、若有定义:
int a=3;语句a+=a-=a*a;运行后,a得值为( )。
A、0
B、-3
C、—12
D、 -6
29、在C语言中,若定义二维数组a[2][3],设a[0][0]在数组中位置为1,则a[1][1]在数组中位置就是()。
A、3
B、4
C、 5
D、6
30、当顺利执行了文件关闭操作时,fclose函数得返回值就是()。
A、 1
B、0
C、—1
D、一个非0值
31、以下程序得运行结果就是()。
main(){ inta[3]={1,2,3};int*num[3]; int**p,i; for(i=0;i〈3;i++) num[i]=&a[i];p=num; printf(”%d”,**p);}
A、1
B、3
C、&a[0]
D、num
32、ﻩ只能向终端输出一个字符得就是( )。
A、printf()函数
B、 scanf()函数
C、ﻩgetchar()函数
D、ﻩputchar()函数
33、构成C源程序得基本单位就是( )
A、语句
B、变量
C、运算符
D、 函数
34、C语言函数体由()括起来.
A、
B、
C、
D、
35、若有定义:
inti,x=0;语句for(i=1;i〈=3;i++)x+=2;与下列( )程序段不等价。
A、i=1;for(;i〈=3;i++) x+=2;
B、i=1;for(;;i++)x+=2;
C、for(i=1;i<=3; ){x+=2; i++;}
D、i=1;for(;i<=3;){x+=2;i++;}
36、若有定义:
intx; charc=’A';则正确得赋值表达式就是( )。
(说明:
'A'得ASCII码得十进制值为65,’a'得ASCII码得十进制值为97)
A、x=c+32