C语言程序设计-笔试题_第1页
C语言程序设计-笔试题_第2页
C语言程序设计-笔试题_第3页
C语言程序设计-笔试题_第4页
C语言程序设计-笔试题_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业一、单选题(共计60题)在下述程序中,if (ij) 语句共执行的次数是( )。main() int i=0,j=14,k=2,s=0; for(;) i+= k ; if(ij) printf(“%d”,s); break ; s+=i ; A、6B、9C、7D、12若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式应是( )。A、ab+B、rb+C、wb+D、ab下列程序的输出结果是( )。struct studen

2、t int a, b, c; ; main() struct student stu2=2,3,4,5,6,7; int t; t=stu0.a+stu1.b%stu0.c; printf(%d n,t); A、0B、1C、4D、5对于浮点型变量f,能实现对f中的值在小数点后第四位进行四舍五入的表达式是( )。A、f=(f*1000+0.5)/1000.0B、f=(f*1000+0.5)/1000C、f=(int)(f*1000+0.5)/1000.0D、f=(f/1000+0.5)*1000现已定义整型变量int i=1; 执行循环语句“while(i+5);”后,i的值为( )。A、1B、

3、5C、6D、以上三个答案均不正确下列程序的输出结果是( )。struct LH int n;struct LH *m;p4;main() int i;for(i=0;in,p2.m-n);A、0,1B、0,2C、0,0D、程序出错下列程序的运行结果是( )。#include stdio.hint f(int a) switch (a) case 0:return 0; case 1:case 2:return 1; return(f(a-2)+f(a-3);main() int b;b=f(9);printf(“%dn”,b);A、10B、7C、8D、9以下程序的输出结果是( )。int f(

4、int b,int m,int n)int i,s=1; for(i=m;in;i+) bi=bi-1+bi+1; s+=bi; return s; main() int x,a=1,2,3,4,5,6,7,8,9,10; x=f(a,3,5); printf(%dn,x); A、23B、26C、42D、35以下程序运行后,输出结果是( )。main() char ch34=123,456,78,*p3;int i; for(i=0;i3;i+) pi=chi; for(i=0;i2C、a&(b+c+d+e)0; k) s += k; return s; void main( ) int k;

5、 k=f(2); printf(%d, %d), k, f(k); A、(3, 3)B、(1, 1)C、(3, 6)D、(6, 12)若有定义:int a,b;char x,y;并有以下输入数据: 12 13 AaBb(回车)则能给a赋整数12,给b赋整数13,给x赋字符a,给y赋字符b的正确程序段是( )。A、scanf(“%d”,&a); scanf(“%d”,&b); x=getchar();y=getchar();B、scanf(“%d%d %c %c”, &a, &b,&x,&y);C、scanf(“%d %d %c %c”, &a,&b,&x,&x,&y,&y);D、scanf(“

6、%d %d %c%c%c%c”,&a,&b,&x,&x,&y,&y);以下对结构体成员的运算结果是( )。#include main()struct st int x; int y; cnum2=1,3,2,7; printf(%dn,cnum0.y/cnum0.x*cnum1.x);A、0B、1C、3D、6函数f定义如下,执行语句“m=f(5);”后,m的值应为( )。 int f(int k) if(k=0|k=1) return 1; else return f(k-1)+f(k-2); A、3B、8C、5D、13若有以下定义:char s10=a,b,c,0, 2,x32 ,0,123

7、;执行语句printf(“%d”,strlen(s);的结果是( )。A、3B、6C、8D、9若i为整型变量,则以下循环执行的次数是( )。for(i=0;i=5;i+) printf(%d,i+);A、5次B、2次C、3次D、6次执行以下程序段后的输出结果是( )。 int x = 3; int m, n; n = (+x) + (+x); m = (x) + (x); printf(%d %dn, m, n);A、10 6B、9 9C、10 10D、10 8设有定义:int a22=1,2,3,4,(*p)2;,则在语句p=a;p+;后,*p的值为( )。A、2B、3C、4D、以上都不对以

8、下关于循环的程序的输出结果是( )。#include stdio.hvoid main() int k=4,n=0; for(;nk;) n+; if(n%3!=0) continue; k; printf(%d %d,k,n);A、1 1B、2 2C、3 3D、4 4下列关于字符串操作的输出结果是( )。#include stdio.h#include string.hvoid main() char p120=abcd,p220=ABCD; char str50=xyz; strcpy(str+2,strcat(p1+2,p2+1); printf(%sn,str);A、xyabcABB、

9、abcABzC、AbabczD、xycdBCD下列选项中属于正确的switch语句的是( )。A、swicth(a) case a:printf(“An”); case b:printf(“Bn”); B、switch(1.0) case 1.0 :printf(“An”); case 2.0 :printf(“Bn”);C、switch(int)(x+2.5) case 1 :printf(“An”); case 1+2 :printf(“Bn”);D、switch(“a”); case “a” :printf(“An”); case “b” :printf(“Bn”);以下程序的运行结果为

10、( )。#include stdio.hvoid main()int y=2,a=1;while(y!=-1)doa*=y;a+;while(y);printf(%d,%dn,a,y);A、1,-2B、2,1C、1,0D、2,-1C语言的输入与输出操作是由( )完成的。A、输入语句B、输出语句C、输入与输出函数D、输入与输出语句若有以下程序段 int a =4,0,2,3,1,i,j,t;for(i=1;i=0&taj) aj+1=aj;j; aj+1=t; 则该程序段的功能是( )。A、对数组a进行插入排序(升序)B、对数组a进行插入排序(降序)C、对数组a进行选择排序(升序)D、对数组a进

11、行选择排序(降序)执行下列程序中的输出语句后,x的值是( )。main() int x ; printf(“%dn”,(x=4*5,x*2,x+20);A、20B、40C、60D、80下列程序段的输出结果是( )。int c =1, 7, 12;int *k=c+1;printf(%d,*k+);A、2B、7C、8D、12下列程序的运行结果是( )。main()int a=4,y; y=fn(a,+a); printf(“%d”,y); int fn(x,c) int b; if(xc)b=1; else if(x=c)b=0; else b=-1 ; return(b); A、4B、-1C、

12、1D、0有如下程序:int x=-20; printf(%dn,x);,其输出结果将是( )。A、19B、20C、21D、-1对于类型相同的指针变量,不能进行的运算是( )。A、+B、-C、=D、=已知:union u_type int i; char ch; float a;temp;现在windows环境下,执行temp.i=266;printf(%d,temp.ch)的结果是( )。A、266B、256C、10D、1以下程序的运行结果是( )。#include stdiohmain() int a=1,2,3,4,5,6,7,8,9,10,11,12; int *p=a+5,*q=NUL

13、L; q=p+5; printf(%d %dn,*p,*q);A、运行后报错B、6 11C、6 12D、5 5以下程序的输出结果是()。 main() int a=0,b=1,c=0,d=20; if (a) d=d-10; else if (!b) if (!c) d=15; else d=25; printf(d=%dn,d); A、d=10B、d=15C、d=20D、d=25下面四组字符串中,都可以用作C语言程序标识符的是( )。A、 print _maf mx_2d aMb6B、 Iam scanf mx_ MBC、 sign 3mf a.f A&BD、 if ty_pe x1# 5X

14、Y下列程序的输出结果是( )。 int f() static int i=0; int s=1; s+=i;i+; return s; main() int i , a=0; for(i=0;i6;i+)a+=f(); printf(“%dn”,a);A、21B、24C、25D、15设有定义:#define STR 12345;,则以下叙述正确的是( )。A、宏名STR代替的是数值常量12345B、宏定义以分号结束,编译时会产生错误信息C、宏名STR代替的是字符串12345D、宏名STR代替的是字符串常量12345以下程序运行后,如果从键盘上输入ABCDE,则输出结果为( )。 #includ

15、e stdio.h #include string.h func (char str ) int num =0; while (*(str +num )!=0)num +; return(num ); main() char str 10,*p=str ; gets(p); printf(%dn,func(p); A、8B、7C、6D、5下列程序的输出结果是( )。struct st int x;int *y;*p; int dt4=10,20,30,40; struct st aa4=50,&dt0,60,&dt1,70,&dt2,80,&dt3;main() p=aa; printf(“%

16、d ”,+(*p-y); printf(“%d ”,(+p)-x); printf(“%d ”,+p-x);A、20 20 10B、21 60 50C、11 60 61D、31 70 60以下函数的功能是( )。char *fun(char *str1,char*str2) while(*str1)&(*str2+=*str1+); return str2; A、求字符串的长度B、比较两个字符串的大小C、将字符串str1复制到字符串str2中D、将字符串str1接续到字符串str2中以下程序的输出结果是( )。#include void func(char *m) +*m; printf(%s

17、n,*m);void main() static char *a=first,second,three; char *n; n=a; func(n);A、firstB、irstC、secondD、其他以下语句的输出结果为( )。 for(k=0;k5;+k) if(k=3) continue;printf(%d,k);A、012B、0124C、01234D、没有输出结果下面的程序对输入的每一个数字出现的次数进行计数,下划线处应填入的正确语句为( )。#include stdio.hmain()int i,ch, n10; for(i=0;i=0 & ch=9) _; for(i=0;i10;+

18、i) printf(数字%d出现的次数是:%dn,i,ni);A、nch-0+B、nch+C、i+D、ni+以下程序的输出结果是( )。#include stdio.hint *fun() int a4,k; for(k=0;k4;k+)ak=k; return(a);void main() int *p,j; p=NULL; p=fun(); for(j=0;jsex);D、scanf(%d,p-age);与 y=(x0?1:x0)y=1; else if(x0)y=1; else if(x0)y=1; else if(x=0)y=0; else y=-1;D、y=0; if(x=0) if

19、(x0)y=1; else y=-1;下列描述中不正确的是( )。A、字符型数组中可能存放字符串B、可以对字符型数组进行整体输入、输出C、可以对整型数组进行整体输入、输出D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值下面程序运行后,关于a、b、c的值应输出为( )。#include stdio.hmain() int a=1, b=2, c=2,t; while (abc)t=a;a=b;b=t;c; printf(%d,%d,%d,a,b,c);A、1,2,0B、2,1,0C、1,2,1D、2,1,1在16位 PC机环境下,下列程序的输出结果是( )。struct tt i

20、nt n1;char n2;float n3; union uuint u13;char u23;su;main()printf(“%dn”,sizeof(struct tt);A、11B、12C、13D、9若有如下程序:void s(char *m,int n) *m=*m+3;n=n+3;printf(%c,%c,*m,n);void main() char p=b,q=B;s(&q,p);printf(%c,%cn,p,q);则程序运行后的输出结果是( )。A、E,e,b,EB、e,E,b,FC、E,e,e,ED、e,E,b,E以下程序的输出结果是( )。#include int mai

21、n() char str100=ABCDEFG, *p=str; int i; for(i = 0; *p != 0; p+,i+); printf(%dn,i); return 0;A、7B、8C、99D、100某C编译系统规定,int型数组占2个字节,则定义以下语句后,sizeof(aa)=( )。struct long num;char name20;union float x;short y;xy;aa;A、32 B、26C、30 D、28语句:printf(“%d”,!0);的输出结果是( )。A、1B、0C、有语法错误 ,不能执行D、!0函数f定义如下,执行语句“sum=f(4)+

22、f(2);”后,sum的值应为( )。 int f(int m) static int i=0; int s=0; for(;i=m;i+) s+=i; return s; A、13 B、16C、10 D、8fwrite函数的一般调用格式是( )。A、fwrite(buffer,count,size,fp);B、fwrite(fp,count,size,buffer);C、fwrite(fp,size,count,buffer);D、fwrite(buffer,size,count,fp);有以下程序段main() int i=1,sum=0,n; scanf(%d,&n);do i+=2;

23、sum+=i ;while(i!=n);printf(%d,sum);若使程序的输出值为15,则应该从键盘输入的n的值是( )。A、1 B、3C、5 D、7下列选项可作为C语言赋值语句的是( )。A、a=1;b=2;B、a=b=6C、iD、y=int(x);已知有以下的说明, int a=8,1,2,5,0,4,7,6,3,9; 那么a*(a+a3)的值为( )。A、5 B、0C、4 D、7已知 enum namezhao=1,qian,sun,liman;执行下述程序段后的输出结果是( )。man=0;switch(man) case 0: printf(Peoplen);break; ca

24、se 1: printf(Mann);break; case 2: printf(Womann);break; default: printf(Errorn);break;A、People B、ManC、Woman D、Error以下能正确计算12310的程序段是( )。A、do i = 1;s = 1; s = s * i; i + +; while (i = 10); B、do i = 1;s = 0; s = s * i; i + +; while (i = 10);C、i = 1;s = 1; do s = s * i; i + +; while (i = 10);D、i = 1;s

25、= 0; do s = s * i; i + +; while (i A);A、0 B、1C、2 D、3若指针p已正确定义,要使p指向两个连续的整型动态存储单元,下列语句正确的是( )。A、p=2*(int*)malloc(sizeof(int);B、p=(int*)malloc(2*sizeof(int);C、p=(int*)malloc(2*2);D、p=(int*)malloc(2,sizeof(int);二、以下叙述中正确的有( )A、在程序的一行上可以出现多个有效的预处理命令行B、宏定义不是C语句,不必在行末加分号C、宏替换不占用运行时间,只占用编译时间D、在以下定义中C R是称为“

26、宏名”的标识符 #define C R 045要求函数的功能是在一维数组a中查找x值。若找到,则返回所在的下标值;否则,返回0。设数据放在数组元素的a1到an中。在以下给出的函数中,不能正确执行此功能的有( )。A、funa(int *a, int n, int x) *a = x; while(an != x) n; return n; B、funb(int *a, int n, int x) int k; for(k = 1; k = n; k+) if(ak = x) return k; return 0; C、func(int a, int n, int x) int *k; a0 =

27、 x; k = a+n; while(*k != x) k; return k - n; D、fund(int a, int n, int x) int k = 0; do k+; while(k n+1)&(ak!=x); if(k 0)A、k%2B、k%2=0C、(k%2)!=0D、k%2=1设有以下语句struct st int n; struct st *next; ;static struct st a3=5,&a1,6,&a2,7,*p=&a0;若要使printf(%dn,_)输出值为6,则下划线处表达式可以为( )。A、p-n+B、+p-nC、(+p)-nD、p-next-n下列

28、说法不正确的有( )。A、带参数的宏定义中的参数是没有类型的B、宏展开将占用程序的运行时间C、宏定义命令是C语言中的一种特殊语句D、使用include命令包含的头文件必须以.h为后缀下列有关函数调用的说法正确的有( )。A、若用值传递方式,则形式参数不予分配内存B、实际参数和形式参数不可以同名C、主调函数和被调用函数可以不在同一个文件中D、函数间传送数据可以使用外部全局变量若变量已正确定义,以下能正确计算1*2*3*4*5的程序段有( )。A、i=1;s=1; do s=s*i;i+; while(i5);B、i=0;s=0; do i+; s=s*i; while(i5);C、i=1;s=1

29、; do s=s*i;i+; while(i6);D、i=0;s=1; do i+; s=s*i; while(i5);设有定义语句: int x6=2,4,6,8,5,7,*p=x,i;要求依次输出x数组中6个元素中的值,下列选项中能完成此操作的语句有( )。A、for(i=0;i6;i+)printf(“%2d”,*(p+);B、for(i=0;i6;i+)printf(“%2d”,*(p+i);C、for(i=0;i6;i+)printf(“%2d”,*p+);D、for(i=0;i2?6:5C、x=9-(y)-(y)D、x=y*4.8/2-1下列关于指针定义的描述正确的有( )。A、指

30、针变量是一种变量,该变量是用来存放某个变量的地址值的B、指针变量的类型与它所指向的变量类型一致C、指针变量的命名规则与标识符相同D、在定义指针时,”*”号表示指针变量的指向以下对结构体变量stu1中成员age的引用正确的有( )。struct studentint age; int num;stu1,*p; p=&stu1;A、stu1.ageB、student.ageC、p-ageD、(*p).age设有结构体类型:typedef struct str int no; char name20;STR;另有变量定义:STR a20, x;如希望实现向与文件指针变量fp关联的文件输出一个结构信息

31、,则以下语句正确的有( )。A、fwrite(a, sizeof(STR), 1, fp);B、fwrite(&a2, sizeof(STR), 1, fp);C、fwrite(&x, sizeof(STR), 1, fp);D、fwrite(x, sizeof(STR), 1, fp);t为int类型,进入下面循环之前,t的值为0: for(;t=1;) .则下列叙述不正确的有( )。A、循环控制表达式的值为0B、循环控制表达式的值为1C、循环控制表达式不合法D、循环有可能是个无限循环下列叙述不正确的有( )。A、函数可以嵌套定义,但不能嵌套调用B、函数可以嵌套调用,也可以嵌套定义C、函数不

32、可以嵌套定义,但可以递归调用D、函数可以嵌套调用,但不能嵌套定义关于数组与字符串,下列选项中属于不合法的定义有( )。A、char s=string;B、int a5=0,1,2,3,4,5;C、char s5=string;D、char a=0,1,2,3,4,5;若有定义: char *str=one,two,three,*p=str; 则下列选项中可以表示出字符t的表达有( )。A、*str2B、*str+2C、*(p+1)D、*+p若有以下调用语句,则正确的fun函数的首部包括( )main() int a50,n; fun(n, &a9); A、void fun(int m, int

33、 x)B、void fun(int s, int h41)C、void fun(int p, int *s)D、void fun(int n, int a)已知有定义:struct int no; char name20;a,b,*c;则以下语句合法的有( )。A、a=b;B、a=&b;C、c=&b; D、*c=b 试题答案1C41A2C42D3C43D4C44A5C45D6C46A7B47C8A48A9C49A10C50D11B51A12D52C13D53D14B54D15B55A16C56B17C57A18B58C19C59A20D60B21C1BC22A2ABD23C3ABCD24B4B

34、CD25A5ACD26B6BCD27D7BCD28A8BCD29A9CD30C10ABC31B11ABD32C12ABCD33A13ACD34A14ABC35C15AC36D16AB37C17ABC38C18AD39B19ABC40B20CD窗体顶端一、单项选择题 【共60题,每小题1分,共60分。下列每题给出的多个选项中,只有一项是最符合试题要求的。请选择相应的正确答案。】1.语句printf(“%dn”,strlen(“xyztxab3”);的输出结果是( )。A)9B)11C)7D)82.程序中对fun函数有如下说明:int *fun();下面说法正确的是( )。A)fun函数是整型函数

35、B)fun函数的返回值是整型数据C)fun函数的返回值是指向整型数据的指针类型D)指针fun指向一个函数,该函数返回整型数据3.在下列语句选项中,只有一个在功能上与其他三个语句不等价(其中s1和s2表示某个C语句),这个不等价的语句是( )。A)if (a) s1; else s2;B)if (!a) s2; else s1;C)if (a!=0) s1; else s2;D)if (a=0) s1; else s2;4.以下程序的运行结果是( )。void fun(int *n) static int m=2; *n*=m-1; m+=2;void main() static int m=1

36、; int i; for(i=1;i4;i+) fun(&m); printf(%dn,m);A)8B)10C)11D)155.若有定义:const int i=10,j=20;int* const pi=(int*)&i;,则下列操作正确的为( )。A)*pi=0;B)pi=&j;C)i=10;pi=&j;D)j=*pi;6.字符串ax44nbcd102a的长度是( )。A)12B)17C)9D)117.以下程序的输出结果为( )。int a=2;int f(int *a) return(*a)+;void main() int s=0; int a=5; s+=f(&a); s+=f(&a

37、); printf(%d %dn,a,s);A)2 7B)2 10C)3 7D)3 118.在C语言中,函数的隐含存储类别是( )。A)autoB)staticC)externD)无存储类别9.以下关于枚举的程序,其运行结果是( )。#include stdio.h main() enum weekday sun,mon,tue=5,wed,thu,fri,sat a,b,c,d; a=sun; b=mon; c=tue; d=wed; printf(%d %d %d %dn,a,b,c,d); A)0 0 5 0B)1 2 5 4C)0 1 5 6D)0 1 5 310.以下程序关于size

38、of()的运行结果是( )。void main() char a=movie,b10=movie; printf(%d %dn,sizeof(a),sizeof(b);A)5 5B)6 6C)6 10D)其他输出11.若x是int型变量,且有下面的程序片段:for(x=5;x8;x+) printf(x/2)?(“*%d”):(“#%d”),x); 该程序片段的输出结果是( )。A)*5*6*7B)#5*6#7*8C)*5#6*7D)*5#6*7#812.以下是求两个正整数的最大公约数的函数fun( ), 下划线处应填入的正确语句为( )。 int fun(m,n) int m,n; int

39、r;if(mn) r=m;m=n;n=r; if(n= =0) return(m); do r=m%n; if (r!=0) m=n;n=r; while (_); return(n); A)r!=0B)r=0C)n!=0D)n=013.以下程序功能为输入1个正整数n, 计算并输出s的前n项的和:s=1/2-2/3+3/4-4/5+ (-1)n/(n+1),下划线处应填入的正确语句为()。#include stdio.hvoid main( ) int k, flag=1, n; float s=0; scanf(%d, &n); for (k=1; k=n; k+) s=s+_; flag=

40、-flag; printf(sum=%fn, s);A)1.0*k/(k+1)* flagB)flag*n/(n+1)C)-k/(k+1)D)1.0*k/(k+1)14.在下列字符序列中,属于C语言合法标识符的是( )。A)P12.aB)stud_100C)$water.1D)88sum15.以下程序的输出结果是( )。main()int a=0,j;for(j=0;j4;j+)switch(j) case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; printf(%dn,a);A)20B)13C)10D)3616.有如下程序:#def

41、ine f(x)x*xmain() int i ;i=f(2+2)/(1+1);printf(“%dn”,i);该程序执行后的输出结果是( )。A)21B)7C)8D)417.有以下程序段: int a=0,b;do scanf(“%d”,&a);b+; while(a!= 10 | b3);此处do-while循环的结束条件是( )。A)a的值等于10并且b的值大于3B)a的值等于10并且b的值大于等于3C)a的值不等于10或者b的值小于3D)a的值不等于10并且b的值大于等于318.若a是整型变量,表达式(aa)等价于( )。A)aB)1C)0D)219.以下程序的输出结果是()。main

42、( ) int n; (n=6*4,n+6),n*2; printf(n=%dn,n);A)30B)24C)60D)4820.以下程序运行后的输出结果是( )。 #include struct NODE int num; struct NODE *next; ; main() struct NODE *p,*q,*r; p=(struct NODE*)malloc(sizeof(struct NODE); q=(struct NODE*)malloc(sizeof(struct NODE); r=(struct NODE*)malloc(sizeof(struct NODE); p-num=1

43、0; q-num=20; r-num=30; p-next=q; q-next=r; printf(%dn ,p-num+q-next-num); A)10B)20C)30D)4021.有以下函数:char *fun(char *p)return p;,该函数的返回值为( )。A)不确定值B)参数p中存放的地址值C)一个临时存储单元的地址值D)形参p自身的地址值22.当a=2,b=3,c=4,d=5时, 执行下面一段程序后x的值为( )。if(ad)x=1 ;else if(ac) if(b0) k+; printf(%dn,k);则程序输出结果为( )。A)-127B)256C)-128D)

44、12824.以下程序输出的字符序列是( )。#include stdio.hmain() char a=language,*p; p=a; while(*p!=u) printf(%c,*p-u+U);p+;A)LANGUAGEB)languageC)LANGD)LANGuage25.在下述程序中,if (ij) 语句共执行的次数是( )。main() int i=0,j=14,k=2,s=0; for(;) i+= k ; if(ij) printf(“%d”,s); break ; s+=i ; A)6B)9C)7D)1226.以下选项中,能定义s为合法的结构体变量的是( )。A)type

45、def struct abc double a; char b10; s;B)struct abc double a; char b10; s;C)struct ABC double a; char b10; ABC s;D)typedef ABC double a; char b10; ABC s;27.以下程序的输出结果是( )。main()int a=1,b=0; switch(a)case 1: switch (b) case 0:printf(*0*);break; case 1:printf(*1*);break; case 2:printf(*2*);break; A)*0*B)

46、*0*2*C)*0*1*2*D)有语法错误28.下列叙述不正确的是( )。A)用typedef可以定义各种类型名,但不能用来定义变量B)typedef和#define都是在预编译时处理的C)用typedef只是将已存在的类型用一个新的标识符来代表D)使用typedef有利于程序的通用和移植29.设有定义:#define STR 12345;,则以下叙述正确的是( )。A)宏名STR代替的是数值常量12345B)宏定义以分号结束,编译时会产生错误信息C)宏名STR代替的是字符串12345D)宏名STR代替的是字符串常量1234530.若要用fopen函数打开一个二进制文件,该文件要既能读也能写,

47、当文件不存在时新建文件,则文件打开方式应是( )。A)ab+B)rb+C)wb+D)ab31.若二维数组定义为amn,则在aij之前的元素个数为( )。A)j*m+iB)i*m+jC)i*m+j-1D)j*m+i-132.假设所有变量均为整型,则执行运算x=(a=2,b=5,b+,a+b)后, x的值是( )。A)7B)8C)6D)233.下列选项中属于不正确的赋值语句的是( )。A)t;B)k=i=j;C)t1=t2=t3=3;D)t1=1,t2=2;34.C语言中运算对象必须是整型的运算符是( )。A)/B)+C)%D)!=35.下列程序的运行结果是( )。main() char arr2

48、4;strcpy(arr,“abc”);strcpy(arr1,“ABC”);printf(“%sn”,arr);A)abc ABCB)abcC)ABCD)arr36.以下程序的输出结果是( )。#include int main() char str100=ABCDEFG, *p=str; int i; for(i = 0; *p != 0; p+,i+); printf(%dn,i); return 0;A)7B)8C)99D)10037.下列函数调用语句中含有( )个参数。func(f1,f2),(f2,f3),(f5,f6,f7)A)3B)5C)6D)738.下列程序片段的输出结果是(

49、 )。printf(%dn,strlen(ATSn0l22);A)l1B)10C)9D)839.有以下程序:main() char str 8=“Hello”,“Beijing”,*p=str;printf(“%sn”,p+8);该程序运行后的输出结果是( )。A)HelloB)BeijingC)jingD)ijing40.在C程序中有如下语句:char *func(int x,int y); 它是( )。A)对函数func的定义B)对函数func的调用C)对函数func的原型说明D)不合法的41.设有数组定义:char array =“”;则数组array所占的空间为( )。A)7个字节B)

50、8个字节C)9个字节D)10个字节42.以下程序的运行结果是( )。#include stdiohmain() int a=1,2,3,4,5,6,7,8,9,10,11,12; int *p=a+5,*q=NULL; q=p+5; printf(%d %dn,*p,*q);A)运行后报错B)6 11C)6 12D)5 543.以下程序的输出结果是( )。main( ) int w=4,x=3,y=2,z=1;if(xy&!(z=w) printf(%dn,(wx?w:zx?w:zy?z:x); A)1B)2C)3D)444.下列程序的输出结果是( )。main()int k=4,m=5,n=

51、7;int *pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf(“%dn”,n);A)5B)7C)20D)2145.下列程序中函数sort的功能是对a数组中的数据进行由大到小的排序:void sort(int a ,int n) int i,j,t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj)t=ai;ai=aj;aj=t;main() int aa10=1,2,3,4,5,6,7,8,9,10 ,i;sort(&aa2,5);for(i=0;it.a2);B)printf(%cn,(*p).a2);C)printf(%cn,

52、p-a3);D)printf(%cn,(*p).t.a2);47.有如下程序,该程序的输出结果是( )。 long f(int n) if(n2) return(f(n-2)+f(n-3); else if(n=2) return(2); else return(1); main() printf(%dn,f(5); A)2B)3C)4D)548.若以下程序所生成的可执行文件名为filel.exe ,当输入命令行:FILE1 CHINA BEIJING SHANGHAI ,执行该程序时,程序的输出结果是( )。main(int argc,char * argv ) while(argc1) +

53、argv;printf(%s ,*argv);A)CHINA BEIJING SHANGHAIB)FILE1 CHINA BEIJINGC)C B SD)F C B49.设char ch,str4,*strp;,则下列赋值语句正确的是( )。A)ch=CBA;B)str=CBA;C)strp=CBA;D)*strp=CBA;50.在PC16位机环境下,以下程序的运行结果是( )。 main() unsigned int a ;int b=-2;a=b;printf(“%u”,a);A)-2B)65534C)32768D)-3276851.下列程序的输出结果是( )。struct student

54、 int a, b, c; ; main() struct student stu2=2,3,4,5,6,7; int t; t=stu0.a+stu1.b%stu0.c; printf(%d n,t); A)0B)1C)4D)552.若有定义:int a,b;char x,y;并有以下输入数据: 12 13 AaBb(回车)则能给a赋整数12,给b赋整数13,给x赋字符a,给y赋字符b的正确程序段是( )。A)scanf(“%d”,&a); scanf(“%d”,&b); x=getchar();y=getchar();B)scanf(“%d%d %c %c”, &a, &b,&x,&y);

55、C)scanf(“%d %d %c %c”, &a,&b,&x,&x,&y,&y);D)scanf(“%d %d %c%c%c%c”,&a,&b,&x,&x,&y,&y);53.若变量定义时未初始化,则其值不确定的是( )。A)静态全局变量B)静态局部变量C)局部变量D)全局变量54.以下程序的输出结果是( )。main( ) char ch25= 6937,8254,*p2; int i,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0;i 0;j+=2) s=10*s+pij- 0; printf(%dn,s);A)69825B)63825C)6385D)55.以下

56、程序的输出结果是( )。main() int i,j,x=0;for (i=0;i2;i+) x+;for(j=0;jy); printf(“%d ”,(+p)-x); printf(“%d ”,+p-x);A)20 20 10B)21 60 50C)11 60 61D)31 70 6057.语句:printf(“%d”,!0);的输出结果是( )。A)1B)0C)有语法错误 ,不能执行D)!058.下列程序运行后的输出结果是( )。 fun(int a, int b) if(ab) return(a); else return(b);main() int x=3, y=8, z=6, r;

57、r=fun(fun(x,y), 2*z); printf(%dn, r);A)3B)6C)8D)1259.函数调用语句:fseek(fp,-20L,2);的含义是( )。A)将文件位置指针移到距离文件头20个字节处B)将文件位置指针从当前位置向后移动20个字节C)将文件位置指针从文件末尾处后退20个字节D)将文件位置指针移到距离当前位置20个字节处60.以下程序将输出的字符是( )。#include stdio.hmain() char c; char (*p)3; char s23 =a,b,c,d,e,f; p=&s0; c=*(p1+1); printf(%c,c);A)bB)dC)eD

58、)f二、多项选择题 【共20题,每小题2分,共40分。下列每题给出的多个选项中,有一项或多项是符合试题要求的。请选择相应的正确答案。多选、少选或错选均不得分。】1.break语句的正确用法包括( )。A)无论在任何情况下,都中断程序的执行,终止整个循环B)在多重循环中,只能退出最靠近的那一层循环语句C)对于go语句和if语句构成的循环,不能使用break退出D)可用于循环语句、switch语句和其他语句2.设有如下定义:char *s2=“abcd”,“ABCD”;char *p=s;则下列说法正确的有( )。A)s数组元素的值分别是“abcd”和“ABCD”两个字符串的首地址B)s数组的两个

59、元素分别存放的是含有四个字符的一维字符数组中的元素C)p是指向指针数据的指针变量D)p中存放的是数组s的首地址3.若已定义的函数有返回值,则以下关于该函数调用的叙述正确的有( )。A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数可以直接调用函数本身4.下列判断不正确的有( )。A)char *a=“china”;等价于 char *a;*a=“china”;B)char str6=“china”;等价于char str = “china”;C)char s=“china”;等价于char s;s=“china”;D)char c4=“a

60、bc”,d4=“abc”;等价于char c4=d4=“abc”;5.以下说法正确的有( )。A)C语言程序总是从main函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序由函数组成,且必须包含main函数D)C语言程序中的main()函数必须放在程序的开始部分6.函数欲实现交换x和y的值,且通过正确调用返回交换结果,下列选项中不能实现这一功能的有( )。A)funa(int *x, int *y) int *p;*p = *x; *x = *y; *y = *p; B)funb(int x, int y) int t;t = x; x = y; y = t;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论