C语言期末复习_第1页
C语言期末复习_第2页
C语言期末复习_第3页
C语言期末复习_第4页
C语言期末复习_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计期末复习题一、选择题 1. 由C语言源程序文件编译而成的目标文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. C 2. C语言程序的基本模块为( )。 A. 表达式 B. 标识符 C. 语句 D. 函数3. 设x和y均为逻辑值,则x|y为假的条件是( )。A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假4. x0 | y=5的相反表达式为( )。A. x=0 | y!=5 B. x0 | y!=5 D. x0 & y=5 5. 在下面的字符数据定义中,( )语句有语法错误。A. char a20=”abcdefg”;B. char a

2、=”x+y=55”;C. char a15=1,2;D. char a10=5; 6. 若用数组名作为函数调用的实参,传递给形参的是( )。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组中全部元素的值 D. 数组元素的个数7. 假定a为一个整型数组名,则元素a4的地址比该数组的首地址大( )个字节。 A. 4 B. 8 C. 16 D. 32 8. 下列给字符数组赋初值时,正确的是( )。 A. char s1=abcdef; B. char s24=abcd; C. char s323=abc,xyz; D. char s44=a,x,s,t; A. char *p=s; B.

3、 char *p=&s; C. char *p;p=*s; D. char *p; p=&s;9. 变量s已定义为“char *s=”Hello world!”;”要使变量p指向s所指向的同一个字符串,则定义为( )。A. char *p=s;B. char *p=&s;C. char *p;p=*s;D. char *p;p=&s;10. 要使p指向二维整型数组a1020,p应定义为( )。 A. int *p=a; B. int *p=a; C. int *p20=a; D. int(*p)20=a;11.若有以下说明和语句,则输出结果是( )。char s12=a book!;print

4、f(%d,strlen(s);A. 12; B. 8; C. 7; D. 11;12下列程序语句的输出结果是( )。char sp=tv0willn;printf(%d,strlen(sp);A. 14; B. 3; C. 9; D. 字符中有非法字符;13对于下列程序段,当输入“welcome”时,程序的输出结果是( )。char m20;char n30=you are;gets(m);strcat(n,m);puts(n); A.welcome you are B.welcome are youC.you are welcome D.you arewelcome 14. 当输入“jian

5、qiao2012”时,下列程序段的输出结果是( )。char st20; char stt=nihao; gets(st); strlwr(st); strcat(st,stt); puts(st);A.jianqiaohao B.jianqiao2012haoC.jianqiao2012nihao D.jianqiaonihao 15.C语言可以执行程序从( )开始执行。 A程序中的第一条可执行语句 B程序中的第一个函数 C程序中的main函数 D包含文件中的第一个函数 16若定义如下函数:sub(int x) float y;y=3*x-4; return y; 则该函数的数据类型是( )

6、。 Aint B不确定 Cvoid D.float 17.在下面关于C函数定义的叙述中,正确的是( )。 A函数可以嵌套定义,但不可以嵌套调用B函数不可以嵌套定义,但可以嵌套调用C函数不可以嵌套定义,也不可以嵌套调用D函数可以嵌套定义,也可以嵌套调用。 18以下程序的输出结果是( )。 #include main( ) int a=1,2,3,4,5,6,*p;p=a;*(p+3)+=2;printf(%d,%d,*p,*(p+3); A1,6 B2,4C1,4D2,6 19以下程序段:int *p,a,b=1;p=&a;*p=10;a=*p+b;A.12B.11C.10D.编译出错20若有定

7、义:int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是( )。Ai=*p;B*p=*&j;Ci=&j;D.i=*p;二、填空题1.表达式x=x+y表示成复合赋值表达式为_。2.关系表达式(x=0)的等价表达式为_。 3. 假定不允许使用逻辑非操作符,则逻辑表达式x3 & x10的相反表达式为 _.4若x=5,y=10,则x!=y的逻辑值为_。 5. 假定x=5,则执行“int a=(! x? 10: 20) ;”语句后a的值为 。6. 若while循环的“头”为“while(i+=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行_次后正常结束。7.

8、假定二维数组的定义为“char a35;”,则该数组所含元素的个数为_。8. 假定二维数组的定义为“char aMN;”,则该数组所占存储空间的字节数为 _。 9. 执行“typedef int ABC10;”语句把ABC定义为具有10个整型元素的_类型。10.strlen函数用于计算一个字符串的_。 11. strcat函数用于把一个字符串_到另一个字符串之后的存储空间中。12函数中的形参变量的初值由调用该函数时对应的_值决定。 13. 程序的编译是以_为单位进行的。 14. 假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)+;”语句后,p所指对象的值为_。15.假定a是

9、一个一维数组,则ai的指针访问方式为_ _。 16.假定p是一个指向整数对象的指针,则用_表示该整数对象。17.在C语言中,凡不参加类型说明的函数,自动按 处理。18函数的实参传递到形参有两种方式 : 和 。三、写出下列每个程序运行后的输出结果 1. #include void main() int i,a10; for(i=0;i=0;i-) printf(%d ,ai); printf(n);2. #include main() char c10=I, ,a,m, ,a, ,b,o,y; int i; for(i=0;i10;i+) printf(%c,ci); printf(n);3.

10、#include void main() char diamond5= , ,*, ,*, ,*, *, , , ,*, ,*, ,*, , ,*; int i,j; for(i=0;i5;i+) for(j=0;jy?x:y; return(z); 5. #include void main() int a8=36,25,48,24,55,40,18,20; int i, b1, b2; a0=a1? (b1=a0, b2=a1):(b1=a1,b2=a0); for(i=2; i8; i+) if(aib1) b2=b1; b1=ai; else if(aib2) b2=ai; print

11、f(%d %dn,b1,b2); 6. #includevoid main()int a10=76,63,54,62,40,75,80,84,44,73;int b4=60,70,90,101;int c4=0;int i,j;for(i=0;i=bj) j+;cj+;for(i=0;i4;i+) printf(%d ,ci);printf(n); 7. #include main() int x=7,y=9; printf(x=%d,ty=%dn,x,y); printf(swapped:n); swap(x,y); printf(x=%d,ty=%dn,x,y);swap(int a,in

12、t b) int temp; temp=a; a=b; b=temp; 8. main() int a,b; scanf(%d,%d,&a,&b); 设a=30,b=54 printf(“a=%d,b=%dn”,a,b); printf(“swapped:n”); swap(&a,&b); printf(”a=%d,b=%dn,a,b); swap(p1,p2)int *p1,*p2; int p; p=*p1; *p1=*p2; *p2=p;9. #includevoid main()int a8=4,8,12,16,20,24,28,32;int *p=a;doprintf(%d ,*p)

13、;p+=2;while(pa+8);printf(n);10. #include void LE(int* a, int* b) int x=*a; *a=*b; *b=x; void main() int x=15, y=26; printf(%d %dn,x,y); LE(&x,&y); printf(%d %dn,x,y); 11. main() int i=2,p; p=f(i,+i); printf(%d,p);int f(int a, int b) int c; if(ab) c=1; else if(a=b) c=0; else c=-1; return(c);12. #incl

14、ude void main() int a,b; int *pointer_1,*pointer_2; a=100;b=10; pointer_1=&a; pointer_2=&b; printf(%d,%dn,a,b); printf(%d,%dn,*pointer_1,*pointer_2);13. main ( )int *p1,*p2,*p,i1=10,i2=20;p1=&i1;p2=&i2;printf(“%d,%dn”,*p1,*p2);p=p1;p1=p2;p2=p;printf(“%d,%dn”,*p1,*p2);14. void main() int a =5,8,7,6,2

15、,7,3; int y,*p=&a1; y=(*-p)+; printf(“%d ”,y); printf(“%dn”,a0); 15。字符串排序,小到大#includevoid main()void swap(char *,char*);char str120,str220,str320;printf(input three line:n);gets(str1);gets(str2);gets(str3);if(strcmp(str1,str2)0) swap(str1,str2);if(strcmp(str1,str3)0) swap(str1,str3);if(strcmp(str2,s

16、tr3)0) swap(str2,str3);printf(Now,the order is:n);printf(%sn%sn%sn,str1,str2,str3);void swap(char*p1,char*p2)char p20;strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);编一程序,输入月份号,输出该月的英文月名。例如:输入“3”,则输出“March”,要求用指针数组处理.#includevoid main()char *month_name13=month,January,February, March,April,May,June,July,August,September,October,November,December;int n;printf(input month:n);scanf(%d,&n);if (n=1)printf(It is %s.n,*(month_name+n);elseprintf(It is wrong.n);输入3个整数,从小到大输出#includevoid main()void swap(int*p1,int*p2);int n1,n2,n3; int

温馨提示

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

评论

0/150

提交评论