计算机等级考试C笔试复习资料_第1页
计算机等级考试C笔试复习资料_第2页
计算机等级考试C笔试复习资料_第3页
计算机等级考试C笔试复习资料_第4页
计算机等级考试C笔试复习资料_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机等级考试C 语言笔试复习题一、单选题:(请选择一个正确结果)1下列语句的输出为()intx= 1;printf ( "%d,%u,%O",x,x,x, );A ) 1, 65535,177777B) 1, 1, 1C) 1,32767, 17777D ) 1, 32768,1777772若 x,y 为实数类型的变量,要判断x,y 相等,最好使用下列关系表达式()A )x= =y;B)x y= =0;C)fabs(x y) 1e8;D) labs(x y) 1e-8;3若有以下的定义、 说明和语句, 则值为 101 的表达式是 ()。structcwinta ;int

2、*b; *p;int x0=11,12,x1=31,32;static struct cw x2=100,x0,300,x1;p=x;A)*p bB)p aC)+ +(p a)D)(p+ +) a4若有以下定义和语句,则输出结果是()。char*sp="tb0Englishn"printf("%d", strlen(sp);A) 12B)3C)17D)135有如下程序void main()int x=23; doprintf("%d",x );while(!x);该程序的执行结果是()A)321B) 23C)不输出任何内容D )陷入死

3、循环6若已定义x 和 y 为 double 类型,则表达式x=2, y=x+10/4 的值是()A )intB )floatC) doubleD) char10若有定义 int a=3;则执行完 printf("%d", a );语句后 a 的值为()A) 3B)2C) 2D)311若有 float x=2.5;y=4.7;int a=7;则表达式 x+a%3*(int) (x+y)%2/4的值为()A )4.0B) 3.0C) 2.75D) 2.512语句 printf("s=% 5.3s","computer");的输出结果是()

4、A )s=comB ) s=comC) s=terD) s=ter13 int a=3,b=4,c=5; 执行完表达式a+ + b&&b+ c&&+c 后, a,b,c 的值分别为()A)345B)435C)444D)44514int x=3,y=1;则条件表达式x>y?1:2.3 的值为()A )1B)1.0C) 2.3D) 215若有定义int i=2,a10,*p=&ai:则与 *p+ 等价的是()A )ai+ +B ) ai+ +C) aiD )a+ +i16以下程序的输出结果是():void main( )int a=5,*p1,*p2;

5、 p1=&a,p2=&p1; (*p1)+ +;printf("%dn",*p2);A )5B)4C)6D)不确定17以下程序的输出结果是()int x=3,y=4;void main()int x,y=5; x=y+ +;printf( "%d" ,x);A )3B)4C)5D) 618若 #include 后面的文件名用双引号括起来,寻找被包含文件的方式是()A )先按系统设定的标准方式查找,再在当前目录中查找B )先在当前目录中查找,再按系统设定的标准方式查找C)只在当前目录中查找D )只按系统设定的标准方式查找A)2B)4C)4.

6、0D)4.519程序设计的步骤一般分为:分析问题、构造模型、设计与描述7要将一个整数 12000 分别以 ASCII码文件和二进制文件形式存算法、编写程序、调试程序和()放,各自所占的存储空间数分别是()字节。A )数据设计B )算法分析A)5和2B)2和5C)2和2 D)5和5C)编制程序说明文档D )编译8对于类型相同的两个指针变量之间,不可进行的运算是()20表达式 11&10 的结果用二进制表示为()。A)= =B) =C) +D)A )11B ) 3C) 1D)109sizeof( a的+10)值为()类型。21结构化程序语言的三种基本结构是()(A )顺序结构、选择结构、循

7、环结构1( a0)(B )递归结构、循环结构、转移结构(A) b0(a0)(C )嵌套结构、递归结构、顺序结构1(a0)(D )循环结构、转移结构、顺序结构22若有以下说明和语句,请选出哪个对c 数组元素的正确引用1(a0)()(B)b0(a0)intc45,(*cp)5;1(a0)cp=c;(A)cp+1(B)(cp+3)(C)*(cp+1)+3(D)*(*cp+2)1(a0)23设有如下的程序段:(C)b0(a0)charstr ="hello"1(a0)char*ptr;ptr=str;1(a0)执行上面的程序段后,* (ptr+5 )的值为()。(D)b0(a0)(

8、A) o'(B) '0'(C)不确定的值(D) 'o' 的地址1(a0)24执行下面的程序段后,B 的值为()。intx=35;charz='A'29在下列程序中,调用f(8) 的值是()intB;int f(int n)B=(x&15)&&(z<'a');if(n= =1)return(1);(A)0(B)1(C)2(D)3elseif(n= =2) return(2);25以下程序的输出结果为()。else return(f(n-1)+f(n-2);#include<stdio.h&

9、gt;main()(A)13(B)21(C)55(D)34int i;30在执行程序china.exe 时,若输入的命令行为: china enlishfor(i=0;i<10;i+);Beijing ,则程序执行结果为()。printf("%d",i);#include<stdio.h>void main(int argc, char *argv)(A)0(B)123456789(C)0123456789(D)10while(argc>1)printf("%c",*+argv);argc-;26以下程序的输出结果是()。(A)e

10、B(B)ceB#include<stdio.h>(C)china enlish Beijing(D)enlish Beijingmain()31如 a 为 int 型,则与表达或 a 等价的 C 语言关系表达式是 ()inti=010,j=10;( A ) a>0(B ) a!=0(C)a= =0(D)a>0printf("%d,%d",+i,j-);32循环语句 for(a=0,b=0;(b!=45)|(a<5);a+); 的循环次数是()(A)4(B)3(C)5(D) 无数多次(A)11,10(B)9,10(C)010,9(D)10,933

11、一个 C 语言程序是由()组成。27表达式 k=(12<10)?4:1?2:3 的值为()。(A) 一个函数(B) 一个或若干个函数(A)1(B)2(C)3(D)4(C)一个过程(D)一个过程或若干个过程28有一 C 语言源程序如下:34设有字符数组 a,则正确的输入语句是()。main()(A)gets('a');(B)scanf("%c",a);int a,b=-1;scanf("%d",&a);(C)scanf("%s",a);(D)gets("a");if(a)if(a>

12、0)b=1;else b=0;35如果程序中有 static char c;则编译程序会对其自动设置初值为()。该程序所表示的数学函数关系是()(A) 'n'(B) "n"(C)0(D) '0'36C 语言用()表示逻辑真值。(A)true(B)TA)k=*ptrl+*ptr2 ;B)ptr2=k ;(C)整型值 0(D)非0整型值整数 1C)ptrl=ptr2 ;D)k=*ptrl*(*ptr2);37已知: int*p; 使用“ p=malloc(sizeof(int);”语句动态申请 int49下面程序的输出是 ()型的存储单元,应当使

13、用 ()。main()(A)int(B)int*(C)(*int)(D)(int*)int x=l0,y=3;38在 C 函数中,局部变量的隐含存储类型是()。printf( “%dn ”,y=x/y) ; (A)auto(B)static(C)registerA)0B)1C)3D) 不确定的值(D)extern49 已 知 : chars4="cba"char*p;执行语句序列39C 语言中,以下叙述中错误的是 ()。p=s;printf("%cn",*p+1;后,其输出为 ()。(A) 同一程序中,全局变量和局部变量可以同名A) 字符 'c&

14、#39;B)字符 'b'C)字符 'a'D)字符 'd'(B) 局部变量的作用域被限定在其所定义的局部范围中50 enum colorred,green,yellow=5,white,black 定义了 一枚举 类(C)同一程序中,全局变量和局部变量不能同名型编译程序为枚举值表中各标识符分配的枚举值依次为()(D) 全局变量的作用域从定义处开始到本源程序文件结束A)1 、2、 3、4、5B)0 、1、 5、2、340在 c 语言中,函数调用时如果相应的形参和实参都是简单变量,C)0、 l、5、6、 7D)3 、4、5、 6、 7则主调函数和被调函

15、数之间传递数据的方式是()。51运行完下列程序后,在屏幕上的内容是()。(A) 单向地址值传递(B) 双向地址值传递main()(C)单向数值传递(D) 双向数值传递int a=0;41有定义: int a54,*p=a0;,则 *(p+2*4+3)等于 () 。a+=(a=12);(A)a20(B)a21(C)a22printf(''%dn'',a);(D)a2342C 语言中,一个函数调用语句为fun(el,e2,e3),(e4,e5), e6);,A)0B)6C)12D)24其实参个数为 ()。52运行下列程序并用键盘输入53,48,32 后,在屏幕上的内

16、容(A)3 个(B)4 个(C)5 个(D)6 个是()。43有如下程序,该程序的输出结果是()main()main( )int i,j,k;int x=1,a=0,b=0 ;scanf(''%d,%d,%d'',&i,&j,&k);switch(x)if(i>50)printf(''%d'',i);case 0;b+;else if(i>40)printf(''%d'',j);case 1:a+eles if(i>30)printf(''%

17、d'',k);case 2:a+;b+else printf(''Error'');(A)a=2,b=1(B)a=l,b=lA)53B)48C)32D)Error(C)a=l, b=0(D)a=2,b=253设有下列语句44在执行语句 if(x=y=2)>=x&&(x=5)y*=x;后变量 x、y 的值应分typedef struct别为 ()。int n ;(A)2 、 4(B)5 、 2(C)5 、 10(D) 执行时报错charch8;45若 N 为整型变量,则for(N=10;N=0;N-);循环里的循环体被Stt

18、;()。则下面叙述正确的是 ()。(A) 无限循环(B) 执行 10 次A)Stt 是结构体变量B)Stt 是结构类型名(C) 执行一次(D) 一次也不执行C)typedef struct 是结构体类型46在位运算中,操作数每左移一位,其结果相当于()D)swuct 是结构体类型名A) 操作数乘以2;B) 操作数除以2;54函数 strcat(strl,str2) 的功能是 ()C)操作数除以4;D)操作数乘以4;A) 将字符串 strl 连接到字符串str2 之后。47已有定义 int k=2 ;int*ptrl ,*ptr2 ,且 ptrl和 ptr2 均已指向变B) 将字符串 str2

19、连接到字符串 strl 之后。量 k,下面不能正确执行的赋值语句是()C)将 str2 复制到字符串strl 中。D)将 strl 复制到字符串 str2 中。printf( “%dl” a);55若要用 fopen 函数打开一个新的二进制文件,该文件要既能读又能写,则文件读写方式字符串应是()A)10B)1C)5D)0A)4B)''r+''C)''wb+''D)"ab"61在 C 程序中,同一程序中的各函数之间 ()。56已知:int a34 ,*p=a0 ;p+=6 ;那么与 *p 的值相同的是 ()。A)

20、 既允许直接递归调用也允许间接递归调用A)*(a+6)B)*(&a0+6)B) 既不允许直接递归调用也不允许间接递归调用C)*(a1+2)D)*(&a00+6)C)允许直接递归调用但不允许间接递归调用57以下程序的输出结果是 ()(注:备选答案中,代表空格 )D)功允许间接递归调用但不允许直接递归调用main()62C 语言中,以下叙述错误的是 ()。printf("n*s1=%15s*","chinabeijing");A) 函数被调用时,系统才为形参分配内存printf("n*s2=%-5s*","chi

21、");B) 实参和对应形参的数据类型必须一致C)实参可以是变量、常量或表达式A)*s1=chinabeijin*D)形参可以是变量、常量或表达式*s2=chi*63C 语言中,函数调用时若实参是数组名,则被调函数对应形参B)*s1=chinabeijing*()。*s2=*chi* ;A)可以是相应类型简单变量C)*s1=*chinabeijing*B)必须是相应类型的指针变量*s2=chi*;C)必须是相应类型数组名D)*s1=_chinabeijing*D)可以是相应类型的指针变量*s2=chi ;64一个数据类型为void 的函数中可以没有 return 语句,那么函数的被58

22、如下程序运行台 m 的值为()调用时()#include<stdio.h>A) 没有返回值B) 返回一个系统默认值voidmah()C)返回只有用户临时决定D)返回一个不确定的值int m,n,k;65有定义: floaty , *p=&y; ,假定变量y 在内存中所占地址为m=(n=4)+(k=l0-7) ;100103。那么 p 的值为 () 。printf("m=%dn",m) ;A)100B)101C)102D)10366有定义: int a1010 ,*p=a0,j,k; ,其中 j 和 k 表示数组元素A)4B)3C)7D)14下标并在数组允

23、许范围内,那么能够正确引用元素ajk 值的是59下面程序运行情况是 ().()。#include<stdio.h>A)*(aj+k)B)*(p+j)+kC)*(pj+k)voidmain()D(a+j)+k67.在标准库函数的调用形式“fread(buffer,size,count,fp); ”中,参数intx=3,y=0,z=0 ;buffer 代表的是()if(x=y+z)printf( “* ” );A)一个整数变量,代表要读入的数据项总数elseprintf( “#”) ;B)一个文件指针,指向要读的文件C)一个指针,指向读入数据存放的首地址A) 有语法错误不能通过编译B)

24、 输出D)一个存储区,存放要读的数据项*68.下列程序的执行结果是()C)可以通过编译,但不能通过连接,因而不能运行D)输出#include “stdio.h”#unionss60执行下面的程序后, a 的值是 ()shortint i;#defineSQR(x)x*xcharc2;main();inta=10,k=2,m=3;voidmain()a/=SQR(m)/SQR(k) ; union ssx;x.c0=10;x.c1=1;printf( “%d”,x.i);A)11B) 266C) 265D) 13869.在下列选项中,不正确的赋值语句是()A)t/=5;B)n1=(n2=(n3=

25、0);C)k=i=j;D)a=b+c=1;70.下面 c 程序运行后变量x 的值是()# include “stdio.h”voidmain() int a,b,c,x; a=b=c=0;x=35;if (!a) x-; elseif(b) ;if( c)x=3;elsex=4;printf( “%dn”,x);A)34B)4C)35D)3二、填空题l 与语句if(a>b) max=a; else max=b ;功能等价的赋值语句是。2、下列程序的功能是对某班的某科的学生成绩x 进行分段统计。要求将 0 ,60 ,60 ,70 , 70 , 80 , 80 , 90 , 0 ,100这五

26、个分数段的人数分别统计在a5-a9中。学生成绩采用百分制。当非法输入时,结束统计。#include<stdio.h>voidmain()float x;int i,k;static int a10;scanf(" f",&x);k=;while(k>=0&&k<10) if(k<6) k=5;ak=ak+1;scanf("%f",&x);k=(int)x/10;for(i=5;i<10;i+ +)printf("%d%,ai);3. 下面的函数用以验证命题: 100 以内的奇数

27、的平方被 8 整除,余数均为 1,若命题成立,则返回 1,否则返回 0 请填空完成该函数。int func( )int a, flag=1; for(a=1;a<100;a+=2)if()flag=0;return(flag);4以下函数 creatlist 用来建立一个带头节点的单项链表, 新产生节点总是插在链表的末尾。单项链表的头指针作为函数值返回。函数中以换行符作为链表建立的结束标志。请填空。#include<stdio.h>struct nodechar data; struct node *next;struct node * creatlist( )struct

28、node *h,*p,*q; char ch;h=(struct node*)malloc(sizeof(struct node); p=q=h;ch=getchar( );while()p=(struct node*)malloc(sizeof(struct node); p->data=ch;q->next=p; q-p; ch=getchar( );p->next='0'return h;5下述程序将磁盘中的一个文件复制到另一个文件中,文件名来自命令行。请填空。Void main(int argc,char*argv)FILE*fin,*fout; if

29、(argc<3)puts("参数丢失 1") return;if(fin=fopen(argv1,"r")=NULL|(fout=fopen(argv2,"w")=NULLputs("无法打开文件! ") ; return;while()fputc(fgetc(fin),fout);printf( “ %5d” ,*p);fclcse(fin);fclose(fout);10以下函数返回字符串s 的长度。strlen(char*s)6以下程序是输出Fibonacci 数列前20 个数,这个数列有如下特char

30、 *p=s;点:第 1,2 两个数为1,1,从第三个数开始,该数是其前面while(*p!='0')两个数之和。p+;#include<stdio.h>return();void main( )int f20=1,1,i;11C 语言中包含一元运算符、二元运算符和三元运算符。其中条for(i=2;i<20;i+ +)件运算符属于。fi=;12在 C 语言中没有固有的输入和输出语句,但是用C 语言编写for(i=0;i<20;i+ +)的程序可以用函数调用的形式来实现输入、输出,这些函数由if(i%5= =0)printf("n");提

31、供。printf("%5d",fi)13以下程序是求 a 数组中偶数之和及偶数之平均值。main()7下面程序的功能是输出5*6 阶矩阵中值最大的元素值。int s=0,k=0,i,a10=1,2,3,5,6,7,8,9,10 ;#include<stdio.h>float ave;void main( )for(i=0;i<10;i+)int i,j,a56,max;if(ai%2=0)for(i=0;i<5;i+ +)s+=ai;for(j=0;j<6;j+ +);scanf(“ %d” ,&aij);max=a00;if(k!=0

32、)for(i=0;i<5;i+ +)ave=s/k;for(j=0;j<6;j+ +)printf("%d,%fin",k,ave) ;if()max=aij;14下面函数的功能是将字符串中的数字字符删除。printf("max=%dn",max);#include<stdio.h>void delnum(char*s)8以下递归函数是求n!之值。int i,j,floatfac(int n)for(i=0;j=0;si!='0'i+)float f;if()if(n= =0|n= =1) f=1;sj=si;j+

33、;elsef=n*;return(f);sj='0'9以下程序的作用是输出a 数组中 10 个元素的值。15以下程序用来统计文件f.dat 中字符的个数。#include<stdio.h>#include "stdio.h"void main( )main()int i,a10,*p=a;FLLE *fp;for(i=0;i<10;i+ +)char ch;scanf("%d",p+ +);long num=0L;if(fp=fopen("f.dat","r")=NULL)for(

34、i=0;i<10;i+ +,p+ +)printf("Open Errorn");exit(0);25.一个 c 程序无论有多少个函数组成, 只能有一个主函数, 其函数ch=fgetc(fp);名是num=num+1;26.在 c 语言中,语句是一条限定转移语句,其功能是while()提前结束本次循环体的执行过程而直接进入下一次循环。27.c 语言能处理的文件类型可以是文本文件和fgetc(fp);num=num+128.在 c 语言中,函数返回值的数据类型取决于29.为了避免嵌套的if-else 语句的二义性, c 语言规定 else 总是与fclose(fp);组

35、成配对关系。printf("num=%ldn",num);30.下面程序的功能是将一个字符串str 的内容颠倒并输出,请填空完成程序。16下面程序的作用是将两个字符串连接在一起。#include “stdio.h ”#include<stdio.h>voidmain()main() charstr= ”abcdefg”;chararl80="abode",*str2="12345",;char*p1,*p2,ch;ptrl=strl ;p1=str;whilc(*+ptrl) ;p2=str;while(*pbl+=*st

36、r2+)!=0);while (*p2!=0)puts(strl) ; p2+;17以下程序是求取矩阵A 的主对角线上元素之和。;#include"stdio.h"while(p1<p2)int main( )ch=*p1,*p1=*p2,*p2=ch;int a33=1,2,3,4,5,6,7,8,9,sum1=0,i,j;;for(i=0;i<3;i+)p2-;for(j=0;j<3;j+)if(i= =j)sum1=;puts(str);printf("sum1=%d",sum1);31.函数 fun 的功能是判断一个 3位整数的

37、个位数字和百位数字之18MyStrCmp(char*slrl,char*str2)是比较两个字符串大小的函数,和是否等于其等于其十位上的数字,是则返回“ yes!”,否则返回“no!”,当 strl,与 str2 相等时返回 0,当 strl 大于 str2 返回一个正整数,当请填空完成函数。strl 小于 str2 返回一个负整数。#include “stdio.h”int MyStrCmp(char*strl,char*str2)fun ( int n)for(;*strl= =*str2;strl+,str2+) intg,s,b;if(*slrl= =)return 0;g=n%10;

38、return *strl-*str2;s=n/10%10;b=n/100;19若 x=2, y=3 ,则 x&y 的结果是。if( (g+b)=s)20在 C 语言中,一个函数一般均由两个部分组成,他们分别称为return “yes”;函数首部和。elsereturn;21任何程序都可调用标准函数exit( ) ,当它被调用时,它程序的执行。voidmain()22下列语句定义结构体变量a,则 a 占用个字节。 intn;Struct damint i;charc;double d;a;scanf(“%d”,&n);23.c 标准库函数 rewind的作用是printf( “%

39、sn”,fun(n);24.一个 c语言程序在可以被执行之前,需要经过的4 个处理程序是:编辑程序、预处理程序、编译程序和32.下面程序从键盘读入 50 个整数并求其中正整数之和。请完善程序main()for(;j<N;j+)int i,a,sum;for(k=2 ; k<=j-1;k+sum=0;ajk=+aj-1k;for(i=0;i<50;i+)37下面程序的功能是统计是从命令行上传递进来的第一个参数中scanf("%d",&a );的字母个数。请填空完成程序。(注:参数个数从0 开始记数 )if(a<0)();#include<

40、stdio.h>sum=sum+a;#include<ctype.h>void main(int argc,argv)pfinff("sum=%dn",sum) ;char *str ; int count=0 ;if(argc<2)33下述程序在数组中同时查找最大元素下标和最小元素下标,并return;分别存放在 main 函数的变量 max 和 min 中,请填空。str=;#include <stdio.h>while(*str)void flnd(int*a,int n,int*max,int*min)if(isalpha(*st

41、r+)int k;count+;*max=*min=a0 ;printf( “%dn ”,count);for<k=l;k<n;k+if(ak>a*max;38下面程序用于计算1+(1+2)+(1+2+3)+(1+2+3+10) ,if(ak<a*min*min=k;请完善程序。#include<stdio.h>void main0void main( )int x=5,8,-7,2,12,7,3,10;int total,sum,m,n ;int max,min;find();for (m=1;n<=10;m+)printf("n%d,%d",max,min);sum=0;34下面程序的功能是输出数组中的各字符串,请填空完成程序。for(n=1;n<=m;n+)sum=sum+n;#include<stdio.h>voin main()char*a= “ abcd” ,“12345” , “efghijk ” , “ 67890” ;printf("total=%dn",total);char;int j=0;39. 下面程序从终端输入一行字符存入字符数组,然后输出;请填p=a;空完成程序。for(;j<4;j+)# include “stdio.h”put

温馨提示

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

评论

0/150

提交评论