C语言基本语法元素.doc_第1页
C语言基本语法元素.doc_第2页
C语言基本语法元素.doc_第3页
C语言基本语法元素.doc_第4页
C语言基本语法元素.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

C语言基本语法元素一选择题1. 若x是单精度实型变量,表达式 (x = 10/4) 的值是( ) 。A、2.5 B、 2.0 C、 3 D、 22. C 语言程序中可以对程序进行注释,注释部分必须用符号( )括起来。A、 和 B、和 C、“/*”和”*/” D、“*/”3. ( )是合法的用户自定义标识符。A、 b-b B、float C、 D、 _isw4.若变量已正确定义并赋值,表达式( )不符合C语言语法。A、a*b/c; B、3.14%2 C、2, b D、a/b/c 5. ( )把x、y定义成float类型变量,并赋同一初值3.14。A、float x, y=3.14; B、float x, y=2*3.14; C、float x=3.14, y=x=3.14; D、float x=y=3.14;6. 设变量定义为“int a, b;”,执行下列语句时,输入( ),则a和b的值都是10。scanf(a=%d, b=%d,&a, &b);A、10 10 B、10, 10 C、a=10 b=10 D、a=10, b=107. 若变量已正确定义,表达式 (j=3, j+) 的值是( )。A、3 B、 4 C、5 D、08. 以下选项中不正确的实型常量是( )。A0.23E B2.3e-1 C1E3.2 D2.3e09. 若变量已正确定义且 k 的值是 4,计算表达式 ( j = k-) 后,( )。A、j=3, k=3 B、j=3, k=4 C、j=4, k=4 D、j=4, k=310. 以下选项中可作为C语言合法整数的是( )A、10110B B、0386 C、0Xffa D、x2a211. 设有如下程序段:int x=2002, y=2003;printf(%dn,(x,y);则以下叙述中正确的是( )A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出B、运行时产生出错信息C、输出值为2002 D、输出值为200312. 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )A、x=x*100+0.5/100.0; B、x=(x*100+0.5)/100.0;C、x=(int)(x*100+0.5)/100.0; D、x=(x/100+0.5)*100.0;13. 在一个C程序中( )A、main函数必须出现在所有函数之前 B、main函数可以在任何地方出现C、main函数必须出现在所有函数之后 D、main函数必须出现在固定位置14.下列关于单目运算符+、-的叙述中正确的是( )A、 它们的运算对象可以是任何变量和常量B、它们的运算对象可以是char型变量和int型变量,但不能是float型变量C、它们的运算对象可以是int型变量,但不能是double型变量和float型变量D、它们的运算对象可以是char型变量、int型变量和float型变量15. 若a,b均为int型变量,x,y均为float型变量,正确的输入函数调用是( )。A、scanf(“%d%d”.&a,&b); B、scanf(“%d%f”,&a,&b);C、scanf(“%d%d”,a,b); D、scanf(“%f%f”,x,y);16、若x,y均为double型变量,正确的输入函数调用是( )。A、scanf(“%f%f”,&x,&y); B、scanf(“%d%d”,&x,&y);C、scanf(“%lf%lf”,&x,&y); D、scanf(“%lf%lf”,x,y);17若a,b,c,d都是int型变量且初值均为10,不正确的赋值语句是( )。A、a=b=c=d; B、a=b+; C、a+b+; D、d=(a=b=125)-c+;.18. 设x和y均为int型变量,则执行以下语句后的输出为( )。x=15;y=5;printf(“%dn”,s%=(y%=2);A、0 B、1 C、6 D、1219. 一个C语言程序是由( )A、一个主程序和若干子程序组成 B、函数组成C、若干过程组成 D、若干子程序组成20. 一个C程序的执行是从( )。A、本程序的main函数开始,到main函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束21. 以下叙述正确的是( )A、在C程序中,main函数必须位于程序的最前面B、C程序的每行中只能写一条语句C、C语言本身没有输入输出语句D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误22. 以下叙述不正确的是( )。A、一个C源程序可由一个或多个函数组成B、一个C程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面23. C语言规定:在一个源程序中,main函数的位置( ) 。A、必须在最开始 B、必须在系统调用的库函数的后面 C、可以任意 D、必须在最后24. 设x 、y均为f1oat型变量,则以下不合法的赋值语句是( ) A、+x; B、y=(x%2)/10; C、x*=y+8; D、x=y=0;25.设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为( ) A、int B、float C、double D、不确定26若x,i,j和k都是int型变量,则执行下面表达式后x的值为( ) x=(i=4,j=16,k=32)A、4 B、16 C、32 D、5227假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是( ) A、7 B、8 C、6 D、228.以下选项中,合法的一组C语言文字是( )。A、028 B、12. C、.177 D、0x8A .5e-3 0Xa23 4e1.5 10,000 -0xf 4.5e0 Oabc 3.e529若以下变量均是整型,且num=sum=7;则执行表达式sum=num+,sum+,+num后sum的值为( ) A、7 B、8 C、9 D、1030若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( ) A、2.500000 B、2.7500OO c、3.500000 D、0.00000031.以下选项中,与j=+i完全等价的表达式是( )。A、i=i+1,j=i B、j=i,i=i+1 C、j=i+ D、j+=i+132. 设在定义:int k=0; 以下选项的四个表达式中与其他三个表达式的值不相同的是( )。A、k+ B、k+=1 C、+k D、k+133. 已知int k,m=1;执行语句k=-m+;后,k的值是( ),m的值是( )。A、-1 B、0 C、1 D、234. 构成C程序的基本单位是( )。A、函数 B、变量 C、子程序 D、语句35. 设变量已正确定义并赋值,以下正确的表达式为( )。A、x=y*5=x+z B、int(15.8)%5 C、x=y+z+5,+y D、x=25%5.0二填空题1. i为int型变量,且初值为3,有表达式i+-3,则该表达式的值是( ),变量i的值是( )。2i为int型变量,且初值为2,有表达式+i-3,则该表达式的值是( ),变量i的值是( )。3若x=1,y=2,z=3,则表达式z+=+x+y+之值为( )。4若有定义int y=3;float z=5.2,x=4.8;则表达式y+=(int)x+x+z之值为( )。5若x=2,y=3,则x%=y+3之值为( )。6表达式a=(b=8)/(c=2)之值为( )。7若x,y,z均为int型变量,则执行以下语句后的输出为( )。x=(y=(z=10)+5)-5;printf(“x=%d,y=%d,z=%dn”,x,y,z);y=(z=x=0,x+10);printf(“x=%d,y=%d,z=%dn”,x,y,z);8. 以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,然后输出a,b,c的值。请填空。 #include main() _;int temp;printf(Enter a,b,c:);scanf(%d%d%d,_);_;a=b;b=c;_;printf(a=%d b=%d c=%dn,a,b,c);9. 输入两个实数a,b,然后交换它们的值,最后输出(提示:要交换两个数得借助一个中间变量temp。首先让temp存放a的值,然后把b存入a,再把temp存入b就完成了)。 void main() double a,b,temp; printf(请输入a和b的值:);scanf(_, &a,&b); temp = a; _;_; printf(交换后, a=%f , b=%fn,_); 选择部分一、选择题(1)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2 B)k%2=1 C)(k%2)!=0 D)!k%2=1(2)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k=k B)-k+ C)k%int(f)D)k=f=m(3) 若k是int型变量k=-3; if(kb) if(bc) printf(%d,d+ +1); else printf(%d,+d +1); printf(%dn,d); 程序运行后的输出结果是A) 2B) 3C) 43D) 44(9)下列条件语句中,功能与其他语句不同的是A) if(a) printf(%dn,x); else printf(%dn,y);B) if(a=0) printf(%dn,y); else printf(%dn,x);C) if (a!=0) printf(%dn,x); else printf(%dn,y);D) if(a=0) printf(%dn,x); else printf(%dn,y);(10)以下4个选项中,不能看作一条语句的是A) ;B) a=0,b=0,c=0;C) if(a0);D) if(b=0) m=1;n=2;(11)以下程序段中与语句k=ab?(bc?1:0):0;功能等价的是A) if(a b) &(bc) ) k=1; B) if(ab) | (bc) ) k=1 else k=0;C) if(ab) k=1; else if(bc) k=1; else k=0; (12) 在以下一组运算符中,优先级最高的运算符是A)= B)= C)% D)&(13) 有定义语句:int a=1,b=2,c=3,x; 则以下选项中各程序段执行后,x的值不为3的是A) if (ca) x=1; B) if (a3) x=3;else if (ba) x=2; else if (a2) x=2;else x=3; else x=1;C) if (a3) x=3; D) if (ab) x=b;if (a2) x=2; if (bc) x=c;if (a1) x=1; if (cbc) printf(%dn,d); else if(c-1=d)=1) printf(%dn,d+1); else printf(%dn,d+2); 执行后输出结果是A) 2 B) 3 C) 4 D) 编译时有错,无结果(16) 表示关系x=y=z的c语言表达式为A) (x=y)&(y=z) B) x=y)AND(y=z)C) (x=y=z)D) (x=y)&(yb?(ac?a:c):(b); A) 5 B) 4 C) 6 D) 不确定(18) 有以下程序int main() int a=15,b=21,m=0; switch (a%3) case 0:m+;break; case 1:m+; switch (b%2) default:m+; case 0:m+;break; printf(“%dn”,m); 程序运行后的输出结果是A) 1 B) 2 C) 3 D) 4(19) 能正确表示逻辑关系:“a10或a0”的C语言表达式是A) a=10 or a=0|a=10 &a=10a=0(20) 以下程序的输出结果是int main() int a=4,b=5,c=0,d; d=!a&!b|!c; printf(%dn,d); A) 1 B) 0 C) 非0的数 D) -1 (21) 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是A) c=b=a;B) (a=c) (b=c) ;C) (a=c) &(b=c);C) a=c=b;(22) 有如下程序int main() int x=1,a=0,b=0; switch (x) case 0: b+; case 1: a+ case 2: a+;b+ printf(“a=%d,b=%dn”,a,b); 该程序的输出结果是A) a=2,b=1B) a=1,b=1C) a=1,b=0D) a=2,b=2(23) 有如下程序int main() float x=2.0,y; if(x0.0) y=0.0; else if(x0?1:x0) y=1; B) if(x) else if(x0)y=1; else y=0; else if(x=0) if(x0)y=1; if(x0)y=1; else if(x=0)y=0; else y=-1; else y=-1;(27) 语句:printf(%d,(a=2)&(b= -2);的输出结果是A) 无输出B) 结果不确定C) -1D) 1(28) 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是int main( ) int x; scanf(%d,&x); if(x + + 5) printf(%d,x); else printf(%dn,x - -); A) 7和5B) 6和3C) 7和4D) 6和4 (29) 以下程序的输出结果是A) -1 1 B) 0 1 C) 1 0 D) 0 0main( ) int a= -1,b=1,k; if(+a0)& ! (b- =0) printf(%d %dn,a,b); else printf(%d %dn,b,a); (30) 假定所有变量均已正确说明,下列程序段运行后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(31) 当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为A) 1 B) 2 C) 3 D) 6 if(ab) if(cd) x=1; else if(ac) if(bd) x=2; else x=3; else x=6; else x=7; (32) int main() float x,y; scan(%f,&x); if(x0.0) y=0.0 else if(x5.0)&(x!=2.0) y=1.0/(x+2.0); else if (xc)t=a;_;c=t; if(bc)t=b;b=c;c=t; printf(%5.2f,%5.2f,%5.2fn,a,b,c); return 0; (7) 当a=1,b=2,c=3时,执行以下if语句后a=( ),b=( ),c=( )。if(ac)b=a;a=c;c=b;(8) 当a=3,b=2,c=1时,执行以下if语句后a=( ),b=( ),c=( )。if(ac) ;b=a;a=c;c=b;(9)当a=1,b=2,c=3时,执行以下if语句后a=( ),b=( ),c=( )。if(ab)a=b;if(bc)b=c;else c=b;c=a;指针部分一、选择题1.以下叙述中不正确的是( )。A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效 D)在一个函数内部的复合语句中定义的变量可以在本函数范围内有效2.以下程序输出结果是( )。viod fun (int a,int b,int c)a=456;b=567;c=678;int main()int x=10,y=20,z=30;fun (x,y,z);printf(%d,%d.%d,x,y,z);return 0;A)30,20,10 B)10,20,30 C)456,567,678 D)678,567,4563.以下程序输出结果是( )。int fun(int x,int y,int *cp,int *dp)*cp=x+y;*dp=x-y;int main( )int a,b,c,d;a=30;b=50;fun(a,b,&c,&d);printf(%d,%dn,c,d);return 0;A)50,30 B)30,50 C)80,-20 D)80,204.以下程序运行后,输出结果是( )。int d=1;void fun(int p) int d=5;d+=p+;printf(%d,d);int main()int a=3;fun(a);d+=a+;printf(%dn,d);return 0;A)84 B)99 C)95 D)445.以下程序段的输出结果( )。#define MIN(x,y) (x)y) f(x,y);else if(yz) f(y,z);else f(x,z);printf(“%d,%d,%dn”,x,y,z); return 0;A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,115.有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;b中的值是( )。A) 5 B) 6 C) 8 D) 916.以下程序执行后输出结果是( )。int main( ) char a=”abcdefg”,b10=”abcdefg”;printf(“%d %dn”,sizeof(a) ,sizeof(b) );return 0;A) 7 7 B) 8 8 C) 8 10 D) 10 1017.以下程序输出结果是( )。void swap1(int c) int t;t=c0;c0=c1;c1=t;void swap2(int c0,int c1) int t;t=c0;c0=c1;c1=t;int main( ) int a2=3,5,b2=3,5;swap1(A) ; swap2(b0,b1);printf(“%d %d %d %dn”,a0,a1,b0,b1);return 0;A) 5 3 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 3 5 5 318.以下程序执行后的输出结果是( )。int f(int b4) int i,j,s=0;for(j=0;j2) i=3-j;s+=bij; return s;int main( ) int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0;printf(“%dn”,f(a) ); return 0;A) 12 B) 11 C) 18 D) 1619.以下程序执行后输出结果是( )。int main( ) char *p10=“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”;printf(“%dn”,strlen(p4); return 0;A) 2 B) 3 C) 4 D) 520.以下程序执行后输出结果是( )。int a=2;int f(int *b) return (*b) +;int main( ) int s=0; int a=5;s+=f(&a) ; s+=f(&a) ;printf(“%dn”,s); return 0;A) 10 B) 9 C) 7 D) 821.设有以下语句typedef struct S int g; char h; T;则下面叙述中正确的是( )。A) 可用S定义结构体变量 B)可以用T定义结构体变量C)S是struct类型的变量 D)T是struct S类型的变量22.以下程序执行后的输出结果是( )。struct STU char name10;int num;void f1(struct STU C) struct STU b=“LiSiGuo”,2042;c=b;void f2(struct STU *C) struct STU b=“SunDan”,2044;*c=b;int main( ) struct STU a=“YangSan”,2041,b=“WangYin”,2043;f1(a) ;f2(&b) ;printf(“%d %dn”,a.num,b.num); return 0;A)2041 2044 B)2041 2043 C)2042 2044 D)2042 204323.以下程序段中,不能正确赋字符串的是( )。A) char s10=”abcdefg”; B) char t=”abcdefg”,*s=t;C) char s10;s=”abcdefg”; D) char s10;strcpy(s,”abcdefg”);24.以下程序执行后输出结果是( )。void f(int a,int i,int j) int t;if(ij) t=ai; ai=aj;aj=t;f(a,i+1,j-1); int main( ) int i,aa5=1,2,3,4,5;f(aa,0,4);for(i=0;i5;i+) printf(“%d,”,aai); return 0; A) 5,4,3,2,1, B) 5,2,3,4,1, C) 1,2,3,4,5, D) 1,2,3,4,5,25.以下程序执行后输出结果是( )。struct STU char name10;int num;int Score;int main( ) struct STU s5=“YangSan”,20041,703,“LiSiGuo”,20042,580, “wangYin”,20043,680,“SunDan”,20044,550, “Penghua”,20045,537,*p5,*t;int i,j;for(i=0;i5;i+) pi=&si;for(i=0;i4;i+)for(j=i+1;jScorepj-Score) t=pi;pi=pj;pj=t;printf(“%d %dn”,s1.Score,p1-Score);return 0;A) 550 550 B) 680 680 C) 580 550 D) 580 68026.int main( ) char ch1,ch2; int n1,n2;ch1=getchar( ); ch2=getchar( );n1=ch1-0; n2=n1*10+(ch2-0);printf(“%dn”,n2); return 0;程序运行时输入:12,执行后输出结果是( )。27.以下程序执行后输出的结果是( )。void f( int y,int *x)y=y+*x; *x=*x+y;int main( ) int x=2,y=4;f(y,&x);printf(“%d %dn”,x,y); return 0;28.下列程序的运行结果是( )。char *ss(char *s) return s+strlen(s)/2;int main( ) char *p,*str=”abcdefgh”;p=ss(str); printf(“%sn”,p); return 0;29.下面程序的运行结果是( )。int f( int a, int n) if(n1) return a0+f(&a1,n-1);else return a0;int main ( ) int aa3=1,2,3,s;s=f(&aa0,3); printf(“%dn”,s); return 0;30.以下程序的运行结果是( )。typedef struct studentchar name10;long sno;float score;STU;int main( ) STU a=“zhangsan”,2001,95,b=“Shangxian”,2002,90,c=“Anhua”,2003,95,d,*p=&d;d=a;if(strcmp(,)0) d=b;if(strcmp(,)0) d=c;printf(“%ld%sn”,d.sno,p-name); return 0; 31.以下程序运行后输出结果是( )。 void fun(int *s, int p23)*s=p11;int main()int a23=1,3,5,7,9,11,*p;p=(int *)malloc(sizeof(int);fun(p,a);printf(%dn,*p); return 0;A)1 B)7 C)9 D)1132.下面函数的功能是( )。int sss(char *s, char *t) while(*s)&(*t)&(*t+= = *s+);return(*s-*t);A) 求字符串的长度 B) 比较两个字符串的大小C) 将字符串s复制到字符串t中 D)

温馨提示

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

评论

0/150

提交评论