C语言模拟试题1_第1页
C语言模拟试题1_第2页
C语言模拟试题1_第3页
C语言模拟试题1_第4页
C语言模拟试题1_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言复习题一一、单项选择1对于语句scanf (“%f%f,c=%f”,&a,&b,&c ); ,其合法的输入形式为( )。(A)56.72.315.6 (B)56.7,2.3,15(C)56.72.3,15.6 (D)56.72.3,c=152.整型变量x=1,y=3,经下列计算后,x的值不等于6的是( ) 。 (A)x=(x=1+2,x*2) (B) x=y*(y/2) (C)x=10-(-y)-(x+) (D) x=y2?6:53.C语言中,逻辑”真”等价于( )。 ()大于零的数 ()大于零的整数 ()非零的数 ()非零的整数4. 执行下面程序, 退出循环后,x和s的值为( ). i

2、nt x=10,s=0; while(x0) s+=x; x-; ; (A) 0和45 (B) 1和45 (C)1和55 (D)0和555.与如下定义完全等价的形式是( )。 char str = “China”;(A) char str = C,h,i,n,a,0; (B) char str = C,h,i,n,a ;(C) char str = 0,C,h,i,n,a (D) char str = C,h,i,n,a,0, 06以下对二维数组不正确初始化是( )。 Achar a23=0; Bchar a 3=1,2,0; Cchar a23=1,2,3,4,5,6; Dchar a 3=

3、1,2,3,4,5,67下面程序段的运行结果是( )。 char s6=A, B, 0, C, D , 0; printf(“%s”,s); AA, B , BAB CABC DAB C8以下说法不正确的是( )。 A不同函数中可以使用相同的变量名。 B形式参数是局部变量。 C一个函数内部定义的变量只能在本函数范围内有效。 D全局变量不能与局部变量同名。9以下叙述正确的是( )。 A递归函数中的形式参数是外部变量。 B递归函数中的形式参数是自动变量。 C递归函数中的形式参数可以省略。 D递归函数中的形式参数只能有一个。10.宏定义有效范围是从定义处到源文件结束处,可以用( )来提前结束宏定义的

4、作用范围。A# ifndef B# endif C# undefined D# undef11.p1指向某个整型变量,要使指针p2指向同一变量,下列语句正确的是( )。A. p2=*p1; B.p2=*p1; C.p2=&p1; D. p2=&*p1;12.数组定义为“int a45;”引用“*(*(a+1)+2)”表示( )。A. a 数组中行下标为1列下标为2的元素的地址 B. a10+2 C. a 数组中行下标为1列下标为2的元素的值 D. a01+2 13.设有说明float (*p)10; ,其中p是( )。A. 具有10个指针元素的一维指针数组. B.指向10个实型变量的函数指针.

5、C. 指向具有10个实型元素的一维数组的指针. D. 10个指向实型变量的指针.14.若有以下说明语句,则( )是错误的。 char *ps=“ABCDEFGH”; char str30;A. printf(“%cn”, *ps); B. strcpy(str,ps+5);C. printf(“%sn”,ps+3); D. str0=ps;15对于“struct nodedouble x;char c;*p;”,( )是错的。 A.p-x=97 B.p.x=97.0 C.p-c=97 D.(*p).c=a16下列说法中错误的是( )。A. 枚举类型的变量之间以及枚举类型的变量与枚举元素之间可以

6、做判断比较。B.枚举类型中枚举元素的值按定义时的顺序分别是0、1、2、,不可以在定义时指定为其它值。C. 枚举类型中的枚举元素是常量。D. 一个整数不能直接赋给一个枚举变量,应先进行强制类型转换。17以下说法中不正确的是 。A. 若malloc(或calloc)函数执行成功,函数返回一个指向分配域起始地址的指针,否则返回空指针(NULL)。B. 为了将一个结构体变量的值传递给另一个函数,可用该结构体变量做实参,形参也必须是同类型的结构体变量;也可用指向该结构体变量的指针做实参。C. 结构体变量的地址就是结构体变量中的每个成员的地址。D. 若想将链表中的某个结点删除,只要撤消它与其它结点的链接关

7、系即可。 18执行如下语句后,表达式的值为67是( )。 struct per int num;struct per *next ;struct per a3=65,&a1,67,&a2,69,0,*p; p=&a0;A (p+)-num B (+p)-num C (*p).num+ D p-num+二、判断正误1程序文件中若有语句getchar ( );该程序文件头应有予编译命令# include “math.h”。2整型变量a = 5, b = 7 ; 表达式 b/a * 100的值是 140。3.语言的语句if(表达式)中的表达式只能为逻辑表达式。4定义数组时,可以用变量作为各下标长度。

8、5数组在内存中顺序占用连续的存储区,用数组名代表其首地址。6. 如果字符串str1与str2相同,则函数strcmp(str1,str2)返回值为一个正数。7任何被调函数都要在主调函数中进行函数声明。8定义在某函数中的静态局部变量,在函数调用结束时,其占用的存储单元被释放。9不同函数中可以定义相同名字的变量,它们代表不同的对象,互不干扰。10用static声明的外部变量只限于在本文件中使用,不能被其它文件引用。11在宏名作用域内所有与宏名相同的字符串都将被替换。12若实参和形参都是指针变量,当在被调用的函数体内改变形参指针变量的值时,实参指针变量的值不会改变。13允许main()函数有个形式参

9、数,一个是整型变量,一个是指针数组。14. 在程序中声明一个结构体类型后,系统将在内存中为此结构体类型分配存储空间。15. 共用体变量的地址和它各成员的地址都是同一地址。16若有“int a=6,b=8,c=a|b;”,则变量c的值是14。17函数feof(fp)的参数fp是文件指针。此函数若返回1表示文件已经结束。18系统自动定义了3个文件指针stdin、stdout、stderr,分别指向终端输入、终端输出、标准出错输出,若fp指向stdout,则语句“fprintf(fp,“%d”,a);”同“printf(“%d”,a);”作用相同。三、阅读程序,说明每个程序的作用,并回答问题1mai

10、n( ) char a,b,c,t; scanf(“%c,%c,%c”,&a,&b,&c); if (a=b) t=a;a=b;b=t; if (a=c) t=a;a=c;c=t; if (b=c) t=b;b=c;c=t; printf(“%3d,%3d,%3d”,a,b,c);运行时输入G,A,E,输出什么?2.main( ) int a,b; char c; scanf(“%d,%d”,&a,&b); if (a=b) if (a=b) c=M; else c=B; else c=H; printf(“%cn”,c);运行时输入673,851,输出什么?3.main( )char ch;

11、 scanf(“%c”,&ch);switch(ch) case A:printf(“85-100n”);break; case B:printf(“70-84n”);break; case C:printf(“60-69n”);break; case D:printf(“60n”);break; default :printf(“errorn”);运行时输入B,输出什么?运行时输入F,输出什么?4.main( )int n,t=1; for (n=6;n=1000)break; printf(“%d”,t);运行程序,输出什么?5.main( )int t=97,n,m; char k= ;

12、/*k的值是空格*/ for (n=7;n0;n=n-2) for (m=1;m=8-n;m+) printf(“%c”, k); for (m=1;m=n;m+) printf(“%c%c”, t ,k); t+; 运行程序,输出什么?6# include stdio.h# define N 4main()char strN20,chang20; int i,j; for (i=0;iN;i+) gets(stri); for (i=0;iN-1;i+) for (j=i+1;j0) strcpy(chang,stri);strcpy(stri,strj);strcpy(strj,chang

13、); for (i=0;iN;i+) puts(sri);运行时依次输入下面4个字符串,输出什么?study hard copy run programwe love motherland7.void zpx(char b,int t) int m,n; char k; for(n=0; nt-1; n+) for(m=0; mbm+1) k=bm; bm=bm+1; bm+1=k;main() int i; char a10=D,F,A,E,C,B,I,J,H,G; zpx(a,10); for (i=0;i10;i+) printf(%c ,ai);运行程序,输出什么?8. main( )

14、 void inv(int *x , int n);int i,a7= 2,3,4,5,6,7,8;for(i=0;i6;i+) printf(“%d ,“,ai); printf(“%dn” ,a6); inv(a,7);for (i=0;i7;i+) printf(“%d “ ,ai); void inv(int *x , int n)int *p1, *p2, *p3, t, m=(n-1)/2; p2=x; p3=x+n-1; p1=x+m; for( ; p2=p1; p2+, p3-) t=*p2; *p2=*p3; *p3=t;运行程序,输出什么?9.# include stdi

15、o.hmain()char *a4,str420;int num4=0; int i,j; for(i=0;i4;i+) ai=stri; for(i=0;i4;i+) /*分别给str的各行输入一个字符串*/ gets(ai); j=calculat(a,num); printf(%dn,j); for(i=0;i4;i+) printf(%d,numi);int calculat(char *b4,int shu4)int m,n,s=0; for(m=0;m=3;m+) n=0; while(*(bm+n)!=0) if (*(bm+n)=A) shum+; n+; for(m=0;m=

16、3;m+) s=s+shum; return(s);运行时输入下面4个字符串,输出什么?DefAAAGHAAHUAHAJAGANJAABHAAAUHGAAAbeAAAAM10.# include stdio.h# define N 3main()struct workerint num; int age; char name20;struct worker wkN,x;FILE *fp; int i,n;if (fp=fopen(data5,wb+)=NULL) printf(can not open filen); exit(0); for(i=0;iN;i+) scanf(%d,%d,%s, &wki.num, &wki.age, );for(i=0;i0) scanf(“%d”,&n);if(n%2=0)sum=sum+n;j+; i-; printf(“%d,%d”,_);3. 程序的作用是:将从键盘输入的30个实数按照从大到小的顺序排列,然后输出。# define N 30main( )int i,j,k; float aN ,t;for(i=0;iN;i+) scanf(“%f”,&ai) ;for(i=0;iN-1;i+) k=i; for(j=i+1;jak) k=j

温馨提示

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

评论

0/150

提交评论