




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机等级考试C语言笔试复习题 一、单选题:(请选择一个正确结果 )1下列语句的输出为( )int x=1;printf(%d,%u,%O,x,x,x,);A)1,65535,177777B)1,1,1C)1,32767,17777 D)1,32768,1777772若x,y为实数类型的变量,要判断x,y相等,最好使用下列关系表达式( )A)x= =y;B)xy= =0;C)fabs(xy) 1e8;D)labs(xy)1e-8;3若有以下的定义、说明和语句,则值为101的表达式是( )。struct cwint a ;int *b; *p;int x0=11,12,x1=31,32;static struct cw x2=100,x0,300,x1;p=x;A)*pb B)paC)+ +(pa)D)(p+ +)a4若有以下定义和语句,则输出结果是( )。char *sp=tb0Englishn;printf(%d, strlen(sp);A) 12B)3C)17D)135有如下程序void main() int x=23;do printf(%d,x);while(!x);该程序的执行结果是( )A)321 B)23C)不输出任何内容D)陷入死循环6若已定义x和y为double类型,则表达式x=2, y=x+10/4的值是( )A)2B)4C)4.0D)4.57要将一个整数12000分别以ASCII码文件和二进制文件形式存放,各自所占的存储空间数分别是( )字节。A)5和2 B)2和5 C)2和2 D)5和58对于类型相同的两个指针变量之间,不可进行的运算是( )A)= =B)=C)+D)9sizeof(a+10)的值为( )类型。A)int B)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); 的输出结果是( )A)s= com B)s=comC)s= terD)s=ter13int a=3,b=4,c=5; 执行完表达式a+ +b&b+c&+c后,a,b,c的值分别为( )A)3 4 5B)4 3 5C)4 4 4D)4 4 514int x=3,y=1; 则条件表达式xy?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;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)只按系统设定的标准方式查找19程序设计的步骤一般分为:分析问题、构造模型、设计与描述算法、编写程序、调试程序和( )A)数据设计B)算法分析C)编制程序说明文档D)编译20表达式11&10的结果用二进制表示为( )。A)11B)3C)1D)1021结构化程序语言的三种基本结构是( )(A)顺序结构、选择结构、循环结构(B)递归结构、循环结构、转移结构(C)嵌套结构、递归结构、顺序结构(D)循环结构、转移结构、顺序结构22若有以下说明和语句,请选出哪个对c数组元素的正确引用( )int c45,(*cp)5;cp=c;(A)cp+1(B)(cp+3)(C)*(cp+1)+3 (D)*(*cp+2)23设有如下的程序段:char str =hello;char *ptr;ptr=str;执行上面的程序段后,*(ptr+5)的值为( )。(A)o (B) 0(C)不确定的值(D) o的地址24执行下面的程序段后,B的值为( )。int x=35;char z=A;int B;B=(x&15)&(za);(A)0(B)1(C)2(D)325以下程序的输出结果为( )。#includemain() int i;for(i=0;i10;i+);printf(%d,i);(A)0 (B)123456789(C)0123456789(D)1026以下程序的输出结果是( )。#includemain() int i=010,j=10;printf(%d,%d,+i,j-);(A)11,10(B)9,10(C)010,9(D)10,927表达式k=(120)b=1;else b=0;该程序所表示的数学函数关系是( )(A)(B) (C) (D) 29在下列程序中,调用f(8)的值是( )int f(int n) if(n= =1)return(1);else if(n= =2) return(2);else return(f(n-1)+f(n-2);(A)13(B)21(C)55(D)3430在执行程序china.exe时,若输入的命令行为:china enlish Beijing,则程序执行结果为( )。#includevoid main(int argc, char *argv) while(argc1) printf(%c,*+argv);argc-;(A)eB (B)ceB(C)china enlish Beijing(D)enlish Beijing31如a为int型,则与表达或a等价的C语言关系表达式是( )(A)a0 (B)a!=0(C)a= =0(D)a032循环语句for(a=0,b=0;(b!=45)|(a=x&(x=5)y*=x;后变量x、y的值应分别为( )。(A)2、4(B)5、2 (C)5、10 (D)执行时报错45若N为整型变量,则for(N=10;N=0;N-);循环里的循环体被( )。(A)无限循环(B)执行10次(C)执行一次(D)一次也不执行46在位运算中,操作数每左移一位,其结果相当于( )A)操作数乘以2;B)操作数除以2;C)操作数除以4;D)操作数乘以4;47已有定义int k=2;int *ptrl,*ptr2,且ptrl和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )A)k=*ptrl+*ptr2;B)ptr2=k;C)ptrl=ptr2;D)k=*ptrl*(*ptr2);49下面程序的输出是( )main()int x=l0,y=3;printf(“%dn”,y=x/y); A)0 B)1 C)3 D)不确定的值49已知:char s4=cba;char *p;执行语句序列p=s;printf(%cn,*p+1;后,其输出为( )。A)字符cB)字符bC)字符aD)字符d50enum colorred,green,yellow=5,white,black定义了一枚举类型编译程序为枚举值表中各标识符分配的枚举值依次为( )A)1、2、3、4、5B)0、1、5、2、3C)0、l、5、6、7D)3、4、5、6、751运行完下列程序后,在屏幕上的内容是( )。main() int a=0;a+=(a=12);printf(%dn,a);A)0B)6C)12D)2452运行下列程序并用键盘输入53,48,32后,在屏幕上的内容是( )。main() int i,j,k;scanf(%d,%d,%d,&i,&j,&k);if(i50)printf(%d,i);else if(i40)printf(%d,j);eles if(i30)printf(%d,k);else printf(Error);A)53B)48C)32D)Error53设有下列语句typedef struct int n;charch8;Stt;则下面叙述正确的是( )。A)Stt是结构体变量B)Stt是结构类型名C)typedef struct是结构体类型D)swuct是结构体类型名54函数strcat(strl,str2)的功能是( )A)将字符串strl连接到字符串str2之后。B)将字符串str2连接到字符串strl之后。C)将str2复制到字符串strl中。D)将strl复制到字符串str2中。55若要用fopen函数打开一个新的二进制文件,该文件要既能读又能写,则文件读写方式字符串应是( )A)4B)r+C)wb+D)ab56已知:int a34,*p=a0;p+=6;那么与*p的值相同的是( )。A)*(a+6)B)*(&a0+6)C)*(a1+2)D)*(&a00+6)57以下程序的输出结果是( )(注:备选答案中, 代表空格)main()printf(n*s1=%15s*,chinabeijing);printf(n*s2=%-5s*,chi);A)*s1=chinabeijin *s2=chi *B)*s1=chinabeijing *s2=*chi*;C)*s1= chinabeijing* *s2=chi *;D)*s1=_chinabeijing*s2= chi; 58如下程序运行后m的值为( )#include Void main () int m,n,k;m=(n=4)+(k=l0-7);printf(m=%dn,m);A)4B)3C)7D)1459下面程序运行情况是( ).#includeVoid main( )int x=3,y=0,z=0;if(x=y+z) printf(“*”);else printf(“#”);A)有语法错误不能通过编译B)输出*C)可以通过编译,但不能通过连接,因而不能运行D)输出#60执行下面的程序后,a的值是( )#define SQR(x) x*xmain() int a=10,k=2,m=3;a/=SQR(m)/SQR(k);printf(“%dn”a);A)10B)1C)5D)061在C程序中,同一程序中的各函数之间( )。A)既允许直接递归调用也允许间接递归调用B)既不允许直接递归调用也不允许间接递归调用C)允许直接递归调用但不允许间接递归调用D)功允许间接递归调用但不允许直接递归调用62C语言中,以下叙述错误的是( )。A)函数被调用时,系统才为形参分配内存B)实参和对应形参的数据类型必须一致C)实参可以是变量、常量或表达式D)形参可以是变量、常量或表达式63C语言中,函数调用时若实参是数组名,则被调函数对应形参( )。A) 可以是相应类型简单变量B) 必须是相应类型的指针变量C) 必须是相应类型数组名D) 可以是相应类型的指针变量64一个数据类型为void的函数中可以没有return语句,那么函数的被调用时( )A)没有返回值B)返回一个系统默认值C)返回只有用户临时决定D)返回一个不确定的值65有定义:floaty,*p=&y;,假定变量y在内存中所占地址为100103。那么p的值为( )。A)100B)101C)102D)10366有定义:int a1010,*p=a0,j,k;,其中j和k表示数组元素下标并在数组允许范围内,那么能够正确引用元素ajk值的是( )。A)*(aj+k) B)*(p+j)+kC)*(pj+k)D(a+j)+k67.在标准库函数的调用形式“fread(buffer,size,count,fp);”中,参数buffer代表的是( ) A) 一个整数变量,代表要读入的数据项总数 B) 一个文件指针,指向要读的文件 C) 一个指针,指向读入数据存放的首地址 D) 一个存储区,存放要读的数据项68.下列程序的执行结果是( ) # include “stdio.h” union ss short int i;char c2;void main( ) union ss x; x.c0=10; x.c1=1; printf(“%d”,x.i); A) 11 B) 266 C) 265 D) 138 69.在下列选项中,不正确的赋值语句是( ) A) t/=5; B) n1=(n2=(n3=0); C) k=i=j; D) a=b+c=1;70.下面c 程序运行后变量x的值是( ) # include “stdio.h” void main( ) int a,b,c,x; a=b=c=0;x=35; if (!a) x-; else if(b) ; if( c) x=3; else x=4; printf(“%dn”,x);A) 34 B)4 C) 35 D)3二、填空题l与语句if(ab) max=a;else max=b;功能等价的赋值语句是 。2、下列程序的功能是对某班的某科的学生成绩x进行分段统计。要求将0,60,60,70,70,80,80,90,0,100这五个分数段的人数分别统计在a5-a9中。学生成绩采用百分制。当非法输入时,结束统计。#includevoidmain() float x; int i,k; static int a10; scanf(f,&x);k= ;while(k=0&k10) if(k6) k=5;ak=ak+1;scanf(%f,&x);k=(int)x/10;for(i=5;i10;i+ +)printf(%d%,ai);3.下面的函数用以验证命题:100以内的奇数的平方被8整除,余数均为1,若命题成立,则返回1,否则返回0请填空完成该函数。int func( ) int a, flag=1;for(a=1;a100;a+=2)if( ) flag=0;return(flag);4以下函数creatlist用来建立一个带头节点的单项链表,新产生节点总是插在链表的末尾。单项链表的头指针作为函数值返回。函数中以换行符作为链表建立的结束标志。请填空。#includestruct node char data; struct node *next;struct node * creatlist( ) struct 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(argc3) puts(参数丢失1)return;if(fin=fopen(argv1,r)=NULL|(fout=fopen(argv2,w)=NULL puts(无法打开文件!);return;while( )fputc(fgetc(fin),fout);fclcse(fin);fclose(fout);6以下程序是输出Fibonacci数列前20个数,这个数列有如下特点:第1,2两个数为1,1,从第三个数开始,该数是其前面两个数之和。#includevoid main( ) int f20=1,1,i;for(i=2;i20;i+ +)fi= ;for(i=0;i20;i+ +) if(i%5= =0)printf(n);printf(%5d,fi)7下面程序的功能是输出5*6阶矩阵中值最大的元素值。#includevoid main( ) int i,j,a56,max;for(i=0;i5;i+ +)for(j=0;j6;j+ +)scanf(“%d”,&aij);max=a00;for(i=0;i5;i+ +)for(j=0;j6;j+ +)if( )max=aij;printf(max=%dn,max);8以下递归函数是求n!之值。float fac(int n) float f;if(n= =0|n= =1) f=1;else f=n* ;return(f);9以下程序的作用是输出a数组中10个元素的值。#includevoid main( ) int i,a10,*p=a;for(i=0;i10;i+ +)scanf(%d,p+ +); ;for(i=0;i10;i+ +,p+ +)printf(“%5d”,*p);10以下函数返回字符串s的长度。strlen(char*s) char *p=s;while(*p!=0)p+;return( );11C语言中包含一元运算符、二元运算符和三元运算符。其中条件运算符属于 。12在C语言中没有固有的输入和输出语句,但是用C语言编写的程序可以用函数调用的形式来实现输入、输出,这些函数由 提供。13以下程序是求a数组中偶数之和及偶数之平均值。main() int s=0,k=0,i,a10=1,2,3,5,6,7,8,9,10;float ave;for(i=0;i10;i+)if(ai%2=0)s+=ai; ;if(k!=0) ave=s/k;printf(%d,%fin,k,ave);14下面函数的功能是将字符串中的数字字符删除。#includevoid delnum(char*s) int i,j,for(i=0;j=0;si!=0;i+)if( ) sj=si; j+;sj=0;15以下程序用来统计文件f.dat中字符的个数。#include stdio.hmain() FLLE *fp;char ch;long num=0L;if(fp=fopen(f.dat,r)=NULL)printf(Open Errorn);exit(0);ch=fgetc(fp);num=num+1;while( )fgetc(fp);num=num+1fclose(fp);printf(num=%ldn,num);16下面程序的作用是将两个字符串连接在一起。#includemain()char strl80=abode,*str2=12345, ;ptrl=strl;whilc(*+ptrl);while(*ptrl+=*str2+)!=0);puts(strl);17以下程序是求取矩阵A的主对角线上元素之和。#includestdio.hint main( ) int a33=1,2,3,4,5,6,7,8,9,sum1=0,i,j;for(i=0;i3;i+) for(j=0;j3;j+)if(i= =j)sum1= ;printf(sum1=%d,sum1);18MyStrCmp(char*slrl,char*str2)是比较两个字符串大小的函数,当strl,与str2相等时返回0,当strl大于str2返回一个正整数,当strl小于str2返回一个负整数。int MyStrCmp(char*strl,char*str2) for(;*strl= =*str2;strl+,str2+)if(*slrl= = )return 0;return *strl-*str2;19若x=2,y=3,则x&y的结果是 。20在C语言中,一个函数一般均由两个部分组成,他们分别称为函数首部和 。21任何程序都可调用标准函数exit( ),当它被调用时,它 程序的执行。22下列语句定义结构体变量a,则a占用 个字节。Struct damint i;char c;double d;a;23.c标准库函数rewind的作用是 24.一个c 语言程序在可以被执行之前,需要经过的4个处理程序是:编辑程序、预处理程序、编译程序和 25.一个c程序无论有多少个函数组成,只能有一个主函数,其函数名是 26.在c语言中, 语句是一条限定转移语句,其功能是提前结束本次循环体的执行过程而直接进入下一次循环。27.c语言能处理的文件类型可以是文本文件和 28.在c语言中,函数返回值的数据类型取决于 29.为了避免嵌套的if-else语句的二义性,c 语言规定else总是与 组成配对关系。30.下面程序的功能是将一个字符串str的内容颠倒并输出,请填空完成程序。 # include “stdio.h” void main() char str=”abcdefg”; char *p1,*p2,ch; p1=str; p2=str; while (*p2!=0) p2+; ; while(p1p2) ch=*p1,*p1=*p2,*p2=ch; ; p2-; puts(str);31. 函数fun的功能是判断一个3位整数的个位数字和百位数字之和是否等于其等于其十位上的数字,是则返回“yes!”,否则返回“no!”,请填空完成函数。 # include “stdio.h” fun ( int n) int g,s,b; g=n%10; s=n/10%10; b=n/100; if( (g+b)=s) return “yes”; else return ;void main( ) int n; scanf(“%d”,&n); printf(“%sn”,fun(n);32.下面程序从键盘读入50个整数并求其中正整数之和。请完善程序main() int i,a,sum;sum=0;for(i=0;i50;i+) scanf(%d,&a);if(a0) ( );sum=sum+a;pfinff(sum=%dn,sum);33下述程序在数组中同时查找最大元素下标和最小元素下标,并分别存放在main函数的变量max和min中,请填空。#includevoid flnd(int*a,int n,int*max,int*min) int k;*max=*min=a0;For(k=l;ka*max ;if(aka*min*min=k;void main0 int x=5,8,-7,2,12,7,3,10;int max,min;find( );printf(n%d,%d,max,min);34下面程序的功能是输出数组中的各字符串,请填空完成程序。#includevoin main() char*a=“abcd”, “12345”, “efghijk”, “67890”;char ;int j=0;p=a;for(;j4;j+)puts( );35 无论一个C程序有多少个函数构成,程序总是从 开始执行的。36函数yh的功能是构成一个杨辉三角形,请填空完成该函数。#include,#define N 11void yh(aN) int j,k;for(j=1;jN;j+) aj1=1;ajj=1;for( ;jN;j+)for(k=2;k=j-1;k+ajk= +aj-1k;37下面程序的功能是统计是从命令行上传递进来的第一个参数中的字母个数。请填空完成程序。(注:参数个数从0开始记数)#include#includevoid main(int argc, argv)char *str; int count=0;if(argc2)return;str= ;while(*str)if(isalpha(*str+)count+;printf(“%dn”,count);38下面程序用于计算1+(1+2)+(1+2+3)+(1+2+3+10),请完善程序。#includevoid main( ) int total,sum,m,n; ;for (m=1;m=10;m+) sum=0;for(n=1;n=m;n+)sum=sum+n; ;printf(total=%dn,total);39.下面程序从终端输入一行字符存入字符数组,然后输出;请填空完成程序。 # include “stdio.h” void main( ) char str80,*sp; int n; for(n=0;n80;n+) strn= ; if(strn=n) break; strn=0; sp=str; while(*sp) putchar( ); 40.下面程序的功能是从当前目录下的文本文件“f1.txt”中读取前10个字符,依次显示在屏幕上;如果文本文件中不足10个字符,则读完为止,请填空完善程序。 # include “stdio.h” void main( ) FILE *fp; int i; char c; if( =NULL) printf(“can not openthis filen”); return;for(i=0;i10;i+) if(feof(fp) break; c=fgetc(fp); putchar( c); fclose(fp);41.下面程序的功能是:从键盘上输入一个整数,求其各位数字的立方之和。例如:输入数据是-123时,输出结果为36.请填空完成程序。 main( ) int digit ,num,sum=0; scanf(“%d”,&num); if (num0) ; sum=sum+digit*digit*digit; ; Printf(“sum=%dn”,sum);42.下面程序的功能是:判断从键盘上输入的整数是否为素数;请填空完成程序。 int prime( ) int flag=1,I; for(i=2;in/2&flag=1;i+) if( ) flag=0; return flag; main( ) int n;scanf(“%d”,&n);if ( ) printf(“n%d is a prime.”,n); else printf(“n%d is not a prime.”,n);三、阅读程序题1写出下列程序段的执行结果。( )#includevoid main( ) union int i2;long k;char c4;r,*s=&r;s-i0=0x39;s-i1=0x38;printf(%cn,s-c0);2下列程序的输出结果是( )#includevoid main( ) p(int *s,int *y);int i,a=11,22,32,41;int x=1;for(i=0;i4;i+) p(a,&x);printf(%d,x);p(int *s,int *y) static int t=3;*y=st;t-;3下面程序的输出结果是( )#includevoid ff(char *p1,char *p2) while(*p2+=*p1+); viod main( ) char*p1=abcde,*p2=1234567;ff(p1,p2);printf(%sn%sn,p1,p2);4下面程序的输出结果是( )#includeint x=12,y=7;void main( )int x=15,z;z=x-y+;int y,z;while(y=x-) y/=3;if(y%3=0) z=(+y);break;printf(%d,%d,%dn,x,y,z);printf(%d,%d,%dn,x,y,z);5下面程序的输出结果是( )#includeextern int j=1;void main( ) void add( );int sum(int x);int k,s;add( );j+;printf(j=%dn,j);for(k=1;k=10;k+)s=sum(k);printf(s=%dn,s);void add( ) int j=0;j+;int sum(int j) int x=0;x+=j;return(x);6以下程序的运行结果是( )。#includevoid num() int x,y;int a=15,b=10;x=a-b;y=a+b;int x,y;void main( ) int a=17,b=15;x=a+b;y=a-b;num( );printf(%d,%dn,x,y);7下面程序的运行结果是( )#includevoid main() struct cmplx int x;int y;cnum2=1,3,0,7;printf(%dn,cnum0.y/cnum0.x*cnum1.x);8下列程序的输出结果是( )。#includevoid sub(iht*a,int n,int k) if(k=n)sub(a,n/2,2*k);*a+=k;void main() int x=0;sub(&x,8,1);printf(%dn,x);9下列程序的运行结果是( )。# include find(int *a,int n) int *p,*s;for(p=a,s=a;p-a*s)s=p;return(*s);void main() int x5=12,11,13,6,18;printf(%dn,find(x,5);10下列程序的运行结果是( )。#includeVoid main() int m,n,numl,num2,temp;numl=6;num2=52;if(num1nu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年海上风电场风能资源评估与海上风电场建设技术难点报告
- 2025年智能Agent长期规划能力试题(含答案与解析)
- 水生植物疫病检疫员上岗考核试卷及答案
- 2025年机器学习工程师联邦学习案例分析面试题(含答案与解析)
- 锻造加热工上岗考核试卷及答案
- 经编钳针工特殊工艺考核试卷及答案
- 偏钨酸铵制备工专业技能考核试卷及答案
- 双酚A装置操作工协作考核试卷及答案
- 溶剂蒸馏工抗压考核试卷及答案
- 特种禽类饲养员设备维护与保养考核试卷及答案
- 充电桩工程施工组织设计施工组织
- 执业兽医机构聘用证明或服务协议
- 身体尺(课件)二年级上册数学人教版
- 化验室检验和试验管理制度
- 欠款转为借款合同
- 公路隧道建设施工技术规范学习考试题库(400道)
- 严重创伤重症监护
- 人教版六年级语文上册生字表(带拼音词组)-2023修改整理
- 初中生自我介绍范文给老师
- 北京市建筑施工作业人员安全生产知识教育培训考核试卷ABCDE
- GB/T 14048.7-2016低压开关设备和控制设备第7-1部分:辅助器件铜导体的接线端子排
评论
0/150
提交评论