




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一部分 C语言理论基础(4) 结构化程序由三种基本结构组成,三种基本结构组成的算法A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务C) 只能完成符合结构化的任务 D) 只能完成一些简单的任务(7) 以下叙述中正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚,具有其他语言的一切优点第二部分 C语言基本语法知识(2)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(4)以下能正确定义且赋初值的语句是A)int n1=n2=10; B)char c=32;C)float f=f+1.1;D)double x=12.3E2.5;(5)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k=kB)-k+C)k%int(f)D)k=f=m(6)有以下程序段int k=0,a=1,b=2,c=3;k=ac ? c:k;执行该程序段后,k的值是A)3B)2C)1D)0(8).以下不能定义为用户标识符的是 A)MainB)_0C)_intD)sizeof(11)若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式ab?a:c0;(28) 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A)6.500000B)6C) 5.500000D) 6.000000(33) 以下选项中不属于C语言的类型的是A) signed short int B) unsigned long intC) unsigned int D) long short(34) 以下叙述正确的是A) 可以把define和if定义为用户标识符B) 可以把define定义为用户标识符,但不能把if定义为用户标识符C) 可以把if定义为用户标识符,但不能把define定义为用户标识符D) define和if都不能定义为用户标识符(35) 在C语言中,合法的长整型常数是A) 0L B) 4962710C) 324562& D) 216D(37) 假定x和y为 double型,则表达式x=2,y=x+3/2的值是A) 3.500000 B) 3 C) 2.000000 D) 3.000000(38) 以下合法的赋值语句是A) x=y=100 B) d-; C) x+y; D) c=int(a+b);(40) 以下程序的输出结果是main() int a=3; printf(“%dn”,(a+a-=a*a) );A) 6B)12 C) 0 D) 12(41) 以下所列的C语言常量中,错误的是A) 0xFF B) 1.2e0.5C) 2L D) 72(42) 下列选项中,合法的C语言关键字是A) VAR B) cher C) integerD) default(47) 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是A) 1 B) 2 C) 2.0 D) 2.5(48) 若变量a、iI已正确定义,且i已正确赋值,合法的语句是A) a=1B) +i; C) a=a+=5;D) a=int(i);(49) 若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是A) 0 B) 0.5 C) 1 D) 2(50) 设有 int x=11; 则表达式 (x+ * 1/3) 的值是 A) 3 B) 4 C) 11 D) 12(51) 下列程序的输出结果是 A) 3 B) 3.2 C) 0 D) 3.07 main() double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(%d n, d*y); (52) 下列变量定义中合法的是A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;(53) 以下选项中属于C语言的数据类型是A) 复数型 B) 逻辑型 C) 双精度型 D) 集合型(62) C语言提供的合法的数据类型关键字是A) Double B) short C) integer D) Char(73) C语言程序的基本单位是A) 程序行 B) 语句 C) 函数 D) 字符(5) 设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句:a*=16+(b+)-(+c);后,a的值是 【5】 。第三部分 顺序结构:输入与输出(1)有以下程序main() int m,n,p; scanf(m=%dn=%dp=%d,&m,&n,&p); printf(%d%d%dn,m,n,p);若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 A)m=123n=456p=789B)m=123 n=456 p=789C)m=123,n=456,p=789D)123 456 789(2) 有以下程序main() int m=0256,n=256; printf(%o %on,m,n);程序运行后的输出结果是A) 0256 0400 B) 0256 256 C) 256 400 D) 400 400 (5) 有以下程序main() int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(%d %d %3.1f %3.1fn,a,c,f,x);程序运行后的输出结果是A) 1 65 1 6.5 B) 1 65 1.5 6.5C) 1 65 1.0 6.5 D) 2 65 1.5 6.5(6) 有定义语句:int x,y;, 若要通过scanf(%d,%d,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A) 11 12回车 B) 11,12回车C 11,12回车 D 11,回车12回车(8)若有以下程序段(n所赋的是八进制数)int m=32767,n=032767printf(%d,%o/n,m,n);执行后输出结果是A) 32767,32767B) 32767,032767C) 32767,77777D) 32767,077777(9)若有以下程序段int m=0xabc,n=0xabc;m-=n;printf(%Xn,m);执行后输出结果是A) 0X0B) 0x0C) 0D) 0XABC(11) 设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是A)printf(“x=%dn”,x);B) printf(“x=%ldn”,x);C)printf(“x=%8dLn”,x);D)printf(“x=%LDn”,x);(12) 以下程序段的输出结果是int a=1234;printf(%2dn,a);A) 12 B) 34 C) 1234 D) 提示出错、无结果(18) 以下程序的输出结果是A) 17,021,0x11 B) 17,17,17B) 17,0x11,021 D) 17,21,11 main( ) int k=17; printf(%d,%o,%x n,k,k,k); (23) 请读程序:#includemain() int a; float b, c;scanf(%2d%3f%4f,&a,&b,&c);printf(na=%d, b=%f, c=%fn, a, b, c);若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是A) a=98, b=765, c=4321 B) a=10, b=432, c=8765C) a=98, b=765.000000, c=4321.000000D) a=98, b=765.0, c=4321.0(25)以下程序的输出结果是【25】 。# include main() int a=2,c=5; printf(a=%d,b=%dn,a,c); A) a=%2,b=%5 B) a=2,b=5 C) a=%d,b=%d D) a=%d,b=%d(8)若有程序main()inti,j;scanf(i=%d,j=%d;&i,&j);printf(i=%d,j=%dn,i,j);要求给i赋10,给j赋20,则应该从键盘输入【8】。(14) 若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是 【14】 。 int b,c; float a; scanf(%f,%d,c=%d,&a,&b,&c);(15) 若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是 【15】 。int a,b;scanf(a=%d,b=%d,&a,&b);第四部分 选择结构(3)设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是A)(!a=1)&(!b=0)B)(ab)& !c|1C)a & bD)a|(b+b)&(c-a)(4)设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句if (ab) if(bc) printf(%d,d+ +1); else printf(%d,+d +1); printf(%dn,d);程序运行后的输出结果是A) 2 B) 3 C) 43 D) 44(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(aB) &(bC) ) k=1; B) if(aB) |(bC) ) k=1else k=0;C) if(aB) k=1; else if(bC) k=1; else k=0; (12) 有以下程序main()int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=abc)printf(%dn,d);else if(c-1=d)=1)printf(%dn,d+1);elseprintf(%dn,d+2)执行后输出结果是A) 2B) 3C) 4D) 编译时有错,无结果(16) 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 & y+z/2的值是A) B) C) D) (17) 有一函数, ,以下程序段中不能根据值正确计算出值的是A) if(x0) y=1; B) y=0;else if(x=0) y=0;if(x0) y=1;else y=-1;else if(x=0)if(x=0);if(x0) y=1;if(x0) y=1;else y=0;else y=-1; else y=-1;(18) 有以下程序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) 1B) 2C) 3D) 4(24) 设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为A) 不定值B) 4C) 3 D) 1(46) 在下列选项中,不正确的赋值语句是A) +t; B) n1=(n2=(n3=0);C) k=i=j; D) a=b+c=1;(47) 能正确表示a10或a0的关系表达式是A)a=10 or a=10a=10a=10 a=0(2)以下程序运行后的输出结果是 main() int a=3,b=4,c=5,t=99; if(ba&ac) t=a;a=c;c=t; if(ac&bc) t=b;b=a;a=t; printf(%d%d%dn,a,b,c);(3)以下程序运行后的输出结果是 main() int a,b,c a=10;b=20;c=(a%b1); printf(%d %d %dn,a,b,c);(5)有以下程序main( ) int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%dn”,x);执行后输出结果是【5】 。(6) 以下程序运行后的输出结果是 【6】 。main() int p=30;printf (“%dn”,(p/30 ? p/10 : p%3);(9)若有以下程序main()inta=4,b=3,c=5,t=0;if(ab)t=a;a=b;b=t;if(a0) switch(k) default : break; case 1 : n+=k; case 2 : case 3 : n+=k; k-; printf(%dn,n);程序运行后的输出结果是A)0B)4C)6D)7(4)有以下程序main() int a=1,b; for(b=1;b=8) break; if(a%2=1) a+=5; continue; a-=3; printf(%dn,b);程序运行后的输出结果是 A)3B)4C)5D)6(12) 有以下程序段int n=0,p;doscanf(“%d”,&p);n+;while(p!=12345 &n3);此处dowhile循环的结束条件是A) P的值不等于12345并且n的值小于3B) P的值等于12345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于3(17) 以下程序的输出结果是main() int num= 0;while(num=2) num+; printf(“%dn”,num);A 1 B 1 C1 D l 2 2 2 3 3 4(18) 以下程序的输出结果是main() int a, b;for(a=1, b=1; a=10) break;if (b%3= =1) b+=3; continue; printf(“%dn”,a);A) 101B) 6 C) 5 D) 4(19) 有以下程序段int k=0;while(k=1)k+;while 循环执行的次数是A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次(28) 以下程序的输出结果是A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1 main( ) int x=10,y=10,I; for(i=0;x8;y=+i) printf(%d,%d ,x-,y); (29) 以下程序的输出结果是A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0 main( ) int n=4; while(n-)printf(%d ,-n); (32) 执行以下程序后,输出的结果是A) -1 B) 1 C) 8 D) 0 main () int y=10; do y - -; while(- - y); printf(%dn,y - -); (34) 执行语句: for(i=l:i+4:);后,变量i的值是A) 3 B) 4 C) 5 D) 不定(38) 假定a和b为int型变量,则执行以下语句后b的值为a=1; b=10;do b-=a; a+; while (b-0) ;A) 9 B) -2 C) -1 D) 8(47) 请读程序片段:#includemain() int a, b;for(a=1;b=1;a=20) break;if(b%3=1)b+=3;continue;b-=5;printf(%dn,a);上面程序的输出结果是A) 7 B) 8 C) 9 D) 10(49) 请读程序:#include#includemain() float x,y,z;scan(%f%f,&x,&y);z=x/y;while(1) if(fabs(z)1.0) x=y; y=z; z=x/y;else breakprintf(%fn,y);若运行时从键盘上输入3.6 2.4(表示回车),则输出的结果是A) 1.500000 B) 1.600000 C) 2.000000 D) 2.400000(51) 语句while(!E);中的条件!E等价于。A)E = = 0 B)E!=1 C)E!=0 D)E(6) 以下程序的输出结果是【7】 。 main() int s,i; for(s=0,i=1;i2);printf(“%dn”,j);(9) 下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。 #include main() int a, b, c, i; a=c=0; for(i=0;i10;i+=2) a+=i; 10 ; c+=b; printf(偶数之和=%dn,a); printf(奇数之和=%dn,c-11); (10) 下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。 #include main() int i, j; for(i=0; 11 ; i+) j=i*10+6; if( 12 ) continue; printf(%d,j); (11) 设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【13】 。for(i=0,j=10;i=j;i+,j-)k=i+j;(13) 下面程序的输出是 【16】 。main() int x=2;while(x-);printf(%dn, x);第六部分:字符型数据(1)以下叙述中正确的是A)调用printf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码(3)有以下程序#include main() char c1=1,c2=2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2);当运行时输入:a 后,以下叙述正确的是A)变量c1被赋予字符a,c2被赋予回车符B)程序将等待用户输入第2个字符C)变量c1被赋予字符a,c2中仍是原有字符2D)变量c1被赋予字符a,c2中将无确定值(4)数字字符0的ASCII值为48,若有以下程序main() char a=1,b=2; printf(%c,b+); printf(%dn,b-a);程序运行后的输出结果是 A)3,2B)50,2C)2,2D)2,50(8) 已定义ch为字符型变量,以下赋值语句中错误的是A) ch=; B) ch=62+3; C) ch=NULL; D) ch=xaa;(9) 已定义c为字符型变量,则下列语句中正确的是A) c=97; B) c=97; C) c=97; D) c=a;(11) 已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量101是A) 字符AB)字符aC)字符eD)非法的常量(23) 在C语言中,合法的字符常量是A) 084 B) x43C) ab D) “0” (25) 已知字母A的ASCII码为十进制的65,下面程序的输出是A) 67,D B) B,C C) C,D D) 不确定的值main() char ch1,ch2;ch1=A+5-3;ch2=A+6-3;printf(%d,%cn,ch1,ch2);(28) 有以下程序:# includemain() int c; while(c=getchar()!=n) switch(c-2) case 0: case 1: putchar(c+4); case 2: putchar(c+4);break; case 3: putchar(c+3); case 4: putchar(c+2);break; printf(n); 从第一列开始输入以下数据,代表一个回车符。2743程序的输出结果是【28】。A) 66877 B) 668966 C) 6677877 D) 668876(3)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33.输出结果是 #include stdio.hmain() char a,b; a=getchar(); scanf(%d,&b); a=a-A+0; b=b*2; printf(%c %cn,a,b);(5)有以下程序#include main( ) char ch1,ch2; int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-0; n2=n1*10+(ch2-0); printf(“%dn”,n2);程序运行时输入:12,执行后输出结果是【5】 。(7) 执行以下程序后,输出#号的个数是 【7】 。#include main() int i,j;for(i=1; i5; i+)for(j=2; j=i; j+) putchar(#);(10) 下列程序段的输出结果是 【10】 。int n=c;switch(n+) default: printf(“error”);break; case a:case A:case b:case B:printf(“good”);break; case c:case C:printf(“pass”); case d:case D:printf(“warn”);(11) 若输入字符串:abcde,则以下while循环体将执行 11 次。While(ch=getchar()=e) printf(“*”);(1)以下关于函数的叙述中正确的是A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数(2)设函数fun的定义形式为void fun(char ch, float x ) 则以下对函数fun的调用语句中,正确的是A)fun(abc,3.0); B)t=fun(D,16.5);C)fun(65,2.8); D)fun(32,32);(3)有以下程序int f1(int x,int y)return xy?x:y;int f2(int x,int y)return xy?y:x;main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d); f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f; printf(%d,%d%dn,e,f,g);程序运行后的输出结果是 A)4,3,7B)3,4,7C)5,2,7D)2,5,7(4)有以下程序#define P 3#define F(int x) return (P*x*x);main() printf(%dn,F(3+5);程序运行后的输出结果是 A)192B)29C)25D)编译出错(5) 若程序中定义了以下函数 double myadd(double a,double B) return (a+B) ;并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是A) double myadd(double a,B) ; B) double myadd(double,double);C) double myadd(double b,double A) ;D) double myadd(double x,double y);(9) 有以下函数定义:void fun( int n, double x) 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A) fun(int y,double m); B) k=fun(10,12.5);C) fun(x,n); D) vold fun(n,x);(17) 以下函数值的类型是fun ( float x ) float y;y= 3*x-4;return y;A) int B) 不确定 C) void D) float(20) 有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是A) 3 B) 4 C) 5 D) 有语法错(26) 请读程序:#includefunc( int a, int b) int c;c=a+b;return c;main() int x=6, y=7, z=8, r;r=func( x-,y=,x+y),z-);printf(%dn,r);上面程序的输出结果是A) 11 B) 20 C) 21 D) 31二、填空题(1)有以下程序int sub(int n) return (n/10+n%10); main() int x,y; scanf(%d,&x); y=sub(sub(sub(x); printf(%dn,y);若运行时输入:1234,程序的输出结果是 【1】 。(5) 以下程序的功能是调用函数fun计算:m=1-2+3-4+9-10,并输出结果。请填空。int fun(int n) int n=0,f=1, i;for (i=1; ib ? a:b) :(9) 函数pi的功能是根据以下近似公式求值:(*)/6=1+1/(2*2)+1/(3*3)+.+1/(n*n)现在请你在下面的函数中填空,完成求的功能。#include “math.h”double pi(long n) double s=0.0; long i;for(i=1;i=n;i+)s=s+ 11 ; return(sqrt(6*s);(10) 下面程序的输出是 【12】 。unsigned fun6( unsigned num) unsigned k=1;do k*=num%10;nu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保督查惩罚措施方案(3篇)
- 涂装质量监督检查方案(3篇)
- 梦见自己抄袭数学试卷
- 2025年度农村社区卫生服务中心医护人员岗位聘任合同
- 2025年智能物流中心仓储区全面清洁与消毒服务合同
- 2025年跨区域冷链物流运输服务采购合同
- 2025年度医药保健品销售代理及品牌市场布局合同
- 2025年度企业品牌形象塑造与社交媒体互动推广合同
- 2025年度网络安全大数据分析与应用服务合同
- 2025年度智能工厂班组员工劳务服务与安全管理合同
- 2025年云南磨憨开发投资集团有限公司招聘考试笔试试题(含答案)
- 2024年安徽省泗县人民医院公开招聘护理工作人员试题带答案详解
- GB/T 24538-2009坠落防护缓冲器
- 专家入库申请表
- GHS制度第六修订版 修订情况系列解读之物理和化学特性
- 烧结原料工技师实操考试题库(含答案)
- 过程审核检查表示例(帮助理解VDA6.3条款)
- 船舶信号设备课件
- 兽药GSP档案记录表格
- 高一新生心理讲座PPT
- 中国大米行业蓝皮书
评论
0/150
提交评论