




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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) 1033、标准库函数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&15)&(z2|b- =4之后,b变量的值为( )。a) 3 b) 0 c) 4 d) 28、如希望当x的值为奇数时,表达式的值为“真”;x的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。a) x%2=1 b) !(x%2) c) !(x%2=0) d) x%29、下面运行的结果是( )。main() int k=3; if(k+3) printf(“%dn”,k+); else printf(“%dn”,-k);a) 5 b) 4 c) 3 d) 210、下面不正确的字符串常量是( )。a) 12 b) “1+2” c) “0” d) “0”11、若x是整型变量,pb是基本类型为整型的指针变量,则正确的赋值表达式是( )。a) pb=&x; b) pb=x c) *pb=&x; d) *pb=x;12、设有如下程序:#include stdio.hmain() int *k,*j,i=100; j=&i; k=&j; 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) 1015、c语言中允许用外部声明来指定变量、函数和其它标识符特征,这里所说的外部指的是( )。a) 冠以关键字extern b) 它们的位置在函数体的外部c) 它们的作用范围是全程的 d) 它们的位置在函数外部16、对整个结构体能进行操作是( )。a) 对结构进行赋值 b) 对结构进行存取c) 对结构进行运算 d) 对结构进行&操作17、给出下面程序的输出结果( )。mian() int n; (n=6*4,n+6),n*2; printf(“n=%dn”,n);a) 30 b) 24 c) 60 d) 4818、以下哪种变量类型其存储空间不在静态存储区( )。a) 静态局部变量 b) 全局变量 c) 静态外部变量 d) 自动变量19、读程序片段,给出输出的结果( )。int x=20;printf(“%dn”,x);a) 02 b) -20 c) -21 d)-1120、以下哪一个表达式取值是正确的( )。a) 1&a的结果为1 b) 3&5的结果为0c) 3|5的结果为0 d) 3|a 的结果为021、一个c程序的执行是从( )。 (a)本程序的main函数开始,到main函数结束 (b)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 (c)本程序的main函数开始,到本程序文件的最后一个函数结束 (d)本程序文件的第一个函数开始,到本程序main函数结束22、如果程序中有 #include 文件名 则意味着( )。(a) 将文件名 所指的该文件的全部内容,复制插入到此命令行处。(b) 指定标准输入输出(c) 宏定义一个函数(d) 条件编译说明 23、设x、y和z是int型变量,且x = 3,y = 4,z = 5,则下面表达式中值为0的是( )。 (a) x & y; (b) x = y; (c) x | y + z & y z ; (d) !(xy)& ! z | 1);24、若有以下说明和语句,那么对c数组元素的正确引用是( )。 int c45,(*cp)5; cp=c; (a) cp+1 (b) (cp+3) (c) *(cp+1)+3 (d) *(*cp+2)25、设有如下程序: #include void main() int *k,*j,i=100; j=&i; k=&j; printf(“%dn”,*k); 上述程序的输出结果是( )。 (a)运行错误 (b)100 (c)i的地址 (d)j的地址26、如下程序:#include void main() int m,n,k; m=(n=4)+(k=10-7); printf(“m=%dn”,m); 运行后m的值为( )。 (a)4 (b)3 (c)7 (d)1427、若有int k=5; float x=1.2;则表达式(int)(x+k)的值是( )。 (a)5 (b)6.2 (c)7 (d)6 28、下面程序的输出是( )。 #include void main() int x=10,y=3; printf(“%dn”,y=x/y); (a)0 (b)1 (c)3 (d)不确定的值29、执行下面程序后,a的值是( )。 #include void main () int a; printf(“%dn”,(a=3*5,a*4,a+5); (a)65 (b)20 (c)15 (d)1030、如果在c程序中有main(int argc,char *argv),那么( )是指命令行中的参数个数。 (a)argv (b)argv (c)argc,argv (d)argc31、执行下面的程序段后,b的值为( )。 int x=35; char z=a; int b; b=(x&15)&(za);(a) 0 (b) 1 (c) 2 (d) 332、以下程序的输出结果是( )。#include main() int i=010,j=10; printf(%d,%d,+i,j-);(a) 11,10 (b) 9,10 (c) 010,9 (d) 10,933、循环语句for(a=0,b=0;(b!=45)|(a y ? 10 : 20 , z的值为( )。 a)10 b)20 c)1 d)2 a b c 41、要将一个整数12000分别以ascii码文件和二进制文件形式存放,各自所占的存储空间数分别是( )字节。a)5和2 b)2和5 c) 2和2 d) 5和542、对于基类型相同的两个指针变量之间,不可进行的运算是( )。a)= b)= c)+ d) 43、在一个char类型的函数定义中,函数体中有return 0;语句,该语句( )。 a) 是错误的 b) 能正确向主调函数返回整型数0c) 在执行时不予理睬 d) 在执行时会中断程序运行44、有定义int a=3,b=4,c=5; 执行完表达式a+-b&b+c-&+c后,a,b,c的值分别为( )。a)3 4 5 b) 4 3 5 c)4 4 4 d)4 4 545、若有定义int i=2,a10,*p=&ai;则与*p+ 等价的是( )。a)ai+ b)ai+ c)ai d)a+i46、以下程序的输出结果是( )。void main() int a=5,*p1,*p2; p1=&a,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) 648、表达式11&10的结果用二进制表示为( )。a)11 b)3 c)1 d)1049、下列程序的执行结果是( )。#include “stdio.h”union ss int i; char c2; ;main() union ss x ; x.c0=10; x.c1=1; printf(“%d”,x.i);(a) 11 (b) 266 (c) 265 (d) 13850、已知:int *p( ); p是( )。(a) 指向int型的指针变量(b) int型的指针数组(c) 一个指向函数的指针变量,函数的返回值是int型(d) 一个函数,该函数的返回值是指向int型的指针变量51、调用strlen(abcd0efng0)的结果为( )。 (a) 4 (b) 5 (c) 8 (d) 1052、下面程序的输出结果是( ) #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)1353、在下列选项中,不正确的赋值语句是( ) 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-c55、假定所有变量均已正确说明,下列程序段运行后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)356、若有以下定义和语句,则输出结果为( )。char *sp=”tb0englishn”;printf(“%d”,strlen(sp);a) 12 b) 3 c) 17 d) 1357、有定义: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) 102c) 104 d) 10659、有定义:int x, *p1=&x, *p2=&p1;,则能够表示变量x值的是( )。 a) p1 b) p2c) *p1 d) *p260、假如一个整型变量的最大允许值为32767,那么运行如下程序后屏幕上会输出的结果是( )main()int a,b;a=32767;b=a+1;printf(“%d,%d”,a,b);a) 32767,32768b) 32767,-32768c) 32767,0d) 运行时报错二、程序填空题。(每空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(&ch,flag); putchar(ch); while(ch!=.);int chang(char *c,int s) if(*c= ) return(1); else if(s&*ca) *c+=a-a; 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,&s2.pname3);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;k2;k+) pk=chk; for(k=0;k0&pkj=9;j+=2) s=10*s+pkj-0; printf(s=%dn,s);11、1、下列程序执行后其输出结果是:#include fun3(int x) static int a=3; a+=x; return(a);void main() int k=2,n; n=fun3(k); n+=fun3(k); printf(%dn,n);12、下列程序执行后其输出结果是:#include union ee int a; int b; *p,s4;void main() int n=1,i; for(i=0;ia);printf(%d,+p-a);13、写出下面程序执行的结果:#include void 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-;14、在下列程序中,若输入为:3275,则输出结果为:#include void main() int x,y,t; scanf(“%d”,&x); x=(x=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;j2;j+) s+=*(*(p+k)+j); printf(s=%dn,s);16、写出下面程序执行的结果:#include void main() union int i2; long k; char c4; r,*s=&r; s-i0=0x39; s-i1=0x38; 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分)12345678910dcdbbaabca11121314151617181920abacadbdca21222324252627282930aaddbcdcbd31323334353637383940bbdcdbcdbc41424344454647484950 cbbaccdbd51525354555657585960adddbbacdb二、填空题。(每空2分,共20分)1、(1)1(2)j=3(3)k=j-1(或kj)(4)aj-1k-12、(1)int num(2)num%10(3)num(或num!=0)3、(1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度事业单位车辆租赁及维护保养服务合同模板
- 2025年度智慧社区便民服务商铺租赁协议
- 2025版木材加工与销售班组劳务承包合同范本
- 2025版企业内部培训资料翻译委托协议
- 2025版日用品电商平台入驻品牌孵化与培育合同
- 2025版桥梁建设施工设备租赁与质量控制协议
- 2025版企业品牌价值提升与市场推广咨询合同
- 2025版住宅小区智能化改造前期物业服务合同示范
- 2025版租赁车辆合同争议解决方式合同
- 2025版全新电商平台新品上市合作协议下载
- 贸易经营类企业生产安全事故应急预案
- 《月下过小修净绿堂试吴客所饷松萝茶》赏析
- 数据中心负荷计算方法
- 水箱拆除专项施工方案
- YY/T 1851-2022用于增材制造的医用纯钽粉末
- GB/T 20858-2007玻璃容器用重量法测定容量试验方法
- 生活中的会计课件
- 辽宁大学学生手册
- 湘美版美术一年级上册全册课件
- 酒水购销合同范本(3篇)
- 师说一等奖优秀课件师说优质课一等奖
评论
0/150
提交评论