二级C语言复习题附答案.pdf_第1页
二级C语言复习题附答案.pdf_第2页
二级C语言复习题附答案.pdf_第3页
二级C语言复习题附答案.pdf_第4页
二级C语言复习题附答案.pdf_第5页
已阅读5页,还剩19页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

C语言复习资料 一、单项选择题。(每小题1分) 1、请选择下列合法的C语言赋值语句。( ) A) a=b=58 B) i+; C) a=58,b=58 D) k=int(a+b); 2、设有如下枚举类型声明: enum language Basic=3,Assembly,Ada=100,COBOL,Fortran; 枚举常量Fortran的值为( )。 A) 4 B) 7 C) 102 D) 103 3、标准库函数fgets(s,n,f)的功能是( )。 A) 从文件f中读取长度为n的字符串存入指针s所指的内存 B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C) 从文件f中读n个字符串存入指针s所指的内存 D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存 4、设有如下的程序段: char str=”Hello”; char *ptr; ptr=str; 执行上面的程序段后,*(ptr+5)的值为( )。 A) o B) 0 C) 不确定的值 D) o的地址 5、执行下面的程序段: int x=35,B; char z=A; B=(x if(k+3) printf(“%dn”,k+); else printf(“%dn”,-k); A) 5 B) 4 C) 3 D) 2 10、下面不正确的字符串常量是( )。 A) 12 B) “1+2” C) “0” D) “0” 11、若x是整型变量,pb是基本类型为整型的指针变量,则正确的赋值 表达式是( )。 A) pb= B) pb=x C) *pb= D) *pb=x; 12、设有如下程序: #include stdio.h main() int *k,*j,i=100; j= k= printf(“%dn”,*k); 上述程序的输出结果是( )。 A) 运行错误 B) 100 C) i的地址 D) j的地址 13、在C语言中,要求运算数必须是整型的运算符是( ) A) % B) / C) D) ! 14、执行下面程序中的输出语句后,a的值是( )。 main() int a; printf(“%dn”,(a=3*5,a*4,a+5); A) 65 B) 20 C) 15 D) 10 15、C语言中允许用外部声明来指定变量、函数和其它标识符特征,这 里所说的外部指的是( )。 A) 冠以关键字extern B) 它们的位置在函数体的外部 C) 它们的作用范围是全程的 D) 它们的位置在函数外部 16、对整个结构体能进行操作是( )。 A) 对结构进行赋值 B) 对结构进行存取 C) 对结构进行运算 D) 对结构进行 (n=6*4,n+6),n*2; printf(“n=%dn”,n); A) 30 B) 24 C) 60 D) 48 18、以下哪种变量类型其存储空间不在静态存储区( )。 A) 静态局部变量 B) 全局变量 C) 静态外部变量 D) 自动变 量 19、读程序片段,给出输出的结果( )。 int x=20; printf(“%dn”,x); A) 02 B) -20 C) -21 D)-11 20、以下哪一个表达式取值是正确的( )。 A) 1 (B) x = y; (C) x | y + z (D) !(x-b则与*p+ 等价的是( )。 A)ai+ B)ai+ C)ai D)a+i 46、以下程序的输出结果是( )。 void main() int a=5,*p1,*p2; p1= (*p1)+; printf(%dn,*p2); A)5 B)4 C)6 D)不确定 47、以下程序的输出结果是( )。 int x=3,y=4; void main( ) int x,y=5; x=y+; printf(%d,x); A)3 B) 4 C) 5 D) 6 48、表达式11 char c2; ; main() union ss x ; x.c0=10; x.c1=1; printf(“%d”,x.i); (A) 11 (B) 266 (C) 265 (D) 138 50、已知:int *p( ); p是( )。 (A) 指向int型的指针变量 (B) int型的指针数组 (C) 一个指向函数的指针变量,函数的返回值是int型 (D) 一个函数,该函数的返回值是指向int型的指针变量 51、调用strlen(abcd0efng0)的结果为( )。 (A) 4 (B) 5 (C) 8 (D) 10 52、下面程序的输出结果是( ) #include stdio.h #define SUB(x,y) (x)*y main( ) int a=3,b=4;printf(%dn,SUB(a,b+1); A)12 B)16 C)15 D)13 53、在下列选项中,不正确的赋值语句是( ) A)t/=5; B)n1=(n2=(n3=0); C)k=i= =j; D)a=b+c=1; 54、若有以下说明: int a12= 1,2,3,4,5,6,7,8,9,10,11,12;char c=a,d,g; 则数值为4的表达式是( ) A)ag-c B)a4 C)ad-c D)ad-c 55、假定所有变量均已正确说明,下列程序段运行后x的值是( ) a=b=c=0;x=35; if(!a)x-;else if(b) if(c) x=3; else x=4; A)34 B)4 C)35 D)3 56、若有以下定义和语句,则输出结果为( )。 char *sp=”tb0Englishn”; printf(“%d”,strlen(sp); A) 12 B) 3 C) 17 D) 13 57、有定义:int *p1,*p2;,则正确的赋值语句为( )。 A) p1=p2; B) p1/=p2; C) p1+=p2; D) p1*=p2; 58、有定义:int a5, *p=a;,数组a的首地址为100,则p+2等于( )。 A) 100 B) 102 C) 104 D) 106 59、有定义:int x, *p1=,则能够表示变量x值的是( )。 A) p1 B) p2 C) *p1 D) *p2 60、假如一个整型变量的最大允许值为32767,那么运行如下程序后屏 幕上会输出的结果是( ) main() int a,b; a=32767; b=a+1; printf(“%d,%d”,a,b); A) 32767,32768 B) 32767,-32768 C) 32767,0 D) 运行时报错 二、程序填空题。(每空2分) 1、函数yh的功能是构成一个杨辉三角形,请填空完成该函数。 #include #define N 11 void yh(aN) int j,k; for(j=1;jN;j+) aj1=1; ajj= (1) ; for( (2) ;jN;j+) for(k=2; (3) ;k+) ajk= (4) +aj-1k; 2、函数fun的功能是求一个整数num各位数字之积,请填空完成函数。 #include long fun( (1) ) long k=1; num=abs(num); do k*= (2) ; num/=10; while( (3) ) return k; 3、下面程序的功能是统计从命令行上传递进来的第一个参数中出现的 字母个数。请填空完成程序。 #include #include void main(int argc, (1) argv) char *str; int (2) ; if(argc!=2) return; str= (3) ; while(*str) if(isalpha( (4) ) count+; printf(“%dn”,count); 4、下述函数是用二分法查找key值。数组中元素值已按递增次序排列。 若找到key则返回对应的下标,否则返回-1。请填空。 int bin(double a,int n,double key) int low,high,mid; low=0; high=n-1; while( ) mid=(low+high)/2; if (keyamid) ; else return mid; return -1; 5、下面的函数用以验证命题:100以内的奇数的平方被8整除,余数均 为1,若命题成立,则返回1,否则返回0。请填空完成该函数。 int func() int a,flag=1; for(a=1;a=100;a+=2) if( (1) ) flag=0; break; return(flag); 6、下面程序的功能是输出数组中的各字符串,请填空完成程序。 #include void main() char *a=“abcd”,”12345”,”efghijk”,”67890”; char (1) ; int j=0; p=a; for(;j4;j+) puts( (2)); 7、以下程序是求a数组中偶数的个数和偶数的平均值。 #include void main() int a10=1,2,3,4,5,6,7,8,9,10; int k,s,i; float ave; for(k=s=i=0;i10;i+) if (ai%2!=0) ; s+=ai; k+; if(k!=0) ave=s/k; printf(%d,%fn,k,ave); 8、下列程序是从c盘根目录下的文本文件“f1.txt”中读取前10个字符,依 次显示在屏幕上。如果文本文件中不足10个字符,则读完为止。 #include “stdio.h” main() FILE *fp; int i; char c; if( = =NULL)printf(“file can not open”);exit(0); for (i=0;i10;i+) if(feof(fp) ) break; c=fgetc(fp); putchar(c); fclose(fp); 9、 三、阅读程序,写出运行结果。(每小题4分) 1、写出下面程序执行的结果: #include stdio.h #define MUL(x,y) x*(y) main() int a=5,b=3,c; c=MUL(a+,b+); printf(%dn,c); 2、写出下面程序执行的结果: #define PR(ar) printf(“%d”,ar) main() int j,a=1,3,5,7,9,11,13,15,*p=a+5; for(j=3;j;j-) switch(j) case 1: case 2: PR(*p+); break; case 3: PR(*(-p); 3、写出下面程序执行的结果: main() int i=2,j=3,k; k=i+j; int k=8; if(i=3) printf(%d,k); else printf(%d,j); printf(%d%d,i,k); 4、写出下面程序执行的结果: #include main() int a=1,b=2,c=3; a+; c+=b; int b=4,c; c=2*b; a+=c; printf(“%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c); 5、当输入字符串this is a test program.时,写出下面程序执行的结 果: #include int chang(char *c,int s); main() int flag=1; char ch; do ch=getchar(); flag=chang( putchar(ch); while(ch!=.); int chang(char *c,int s) if(*c= ) return(1); else if(s return(0); 6、给出下面程序的运行结果。 #include static struct st1 char name10; char *addr; ; static struct st2 char *pname; struct st1 s1; s2=England,Ann,London; void main() printf(%s,%sn,+s2.s1.addr, 7、以下程序的运行结果是( )。 #include #define PR(a) printf(%dt,a) void main() int j,aa=1,2,3,4,5,6,7,8,9,10,*p=aa+4; printf(n); for(j=4;j;j-) switch(j) default:PR(*p+); case 1: case 2:PR(*p-);break; case 3:PR(*(+p); 8、下列程序的运行结果是( )。 #include void main() void add(); int i; for(i=0;i3;i+) add(); void add() static int x=0; x+; printf (%d ,x); 9、下列程序的运行结果是 #include void main() int fun(int a); int a=2,j,k; for(j=0;j2;j+) k=fun(a+); printf(%dn,k); int fun(int a) int b=0; static int c=3; a=c+,b+; return a; 10、#include void main() char ch25=1234,5678,*p2; int j,k,s=0; for(k=0;ka); 13、写出下面程序执行的结果: #include void main() p(int *s,int *y); int i,a=11,22,32,41; int x=1; for(i=0;i=0?x:-x); y=0; while(x) t=x%10; x=x/10; y=y*10+t; printf(“the result is %d”,y); 15、写出下面程序执行的结果: #include void main() int a34=1,2,3,4,5,6,7,8,9,10,11,12; int (*p)4=a,j,k,s=0; for(k=0;k3;k+) for(j=0;ji0=0 x39; s-i1=0 x38; printf(“%cn”,s-c0); 四、编程序。(每小题10分,共20分) 1、编写程序删除一个字符串中的所有空格。例如:输入字符串“This is a string.”,则应输出“Thisisastring.”。 2、编程找出1100之间的全部同构数。若一个数出现在它的平方数的右 边,则称该数为同构数。如:5*5=25,25*25=625等,5和25均为同 构数。 3、从键盘上输入n(n50)个任意位的正整数m(m32767),将每个 整数的各位数字之和存放在a数组中。要求:求每个整数k的各位数字之 和用自定义函数来实现。 4、编写一个程序计算下式之和。 1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+5+6+7+8+9+10) 5、函数adddigit的原型为int adddigit(int num);,其功能是求num各位数字 之和。要求编制该函数并用相应的主函数进行测试。 6、实现判断一个正整数是否为素数的函数首部为int isprime(int x),当x 是素数时函数返回1,否则返回0。要求编制该函数并用相应的主函数进 行测试。 7、编一程序,求出所有各位数字的立方和等于1099的3位整数。 C语言程序设计 参考答案 一、单项选择题。(每小题1分) 12345678910 DCDBBAABCA 11121314151617181920 ABACADBDCA 21222324252627282930 AADDBCDCBD 31323334353637383940 BBDCDBCDBC 41424344454647484950 CBBACCDBD 51525354555657585960 ADDDBBACDB 二、填空题。(每空2分,共20分) 1、(1)1 (2)j=3 (3)k=j-1(或kj) (4)aj-1k-1 2、(1)int num (2)num%10 (3)num(或num!=0) 3、(1)char * (2)count=0 (3)argv1 (4)*str+ 4、low1) k=k*10; i=i/10; if(j%k=n) flag=1; return flag; main() int n; printf(please input a integer(1100):); scanf(%d, if(check(n) printf(Yesn); else printf(Non); 3、 unsigned int sum(unsigned int num) unsigned int count = 0; w

温馨提示

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

评论

0/150

提交评论