已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言基本概念能将高级语言编写的源程序转换成目标程序的是_。 A) 编辑程序 B) 编译程序 C) 解释程序 D) 链接程序 以下选项中合法的用户标识符是_。 A) long B) _2Test C) 3Dmax D) A.dat 以下叙述正确的是()A) 可以把define和if定义为用户标识符 B) 可以把define定义为用户标识符,但不能把if定义为用户标识符 C) 可以把if定义为用户标识符,但不能把define定义为用户标识符 D) define和if都不能定义为用户标识符 以下叙述正确的是()A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点 在一个C语言程序中_ A) main函数必须出现在所有函数之前 B) main函数必须出现在所有函数之后 C) main函数可以在任何地方出现 D) main函数必须出现在固定位置 一个C语言程序是由_组成的。 A) 一个主程序和若干子程序 B) 若干子程序 C) 函数 D) 若干过程 以下叙述中正确的是() A) C语言的源程序不必通过编译就可以直接运行 B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译 下列关于C语言用户标识符的叙述中正确的是() A) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 B) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头 C) 用户标识符中不可以出现中划线,但可以出现下划线 D) 用户标识符中可以出现下划线和中划线(减号) 以下说法中正确的是() A)C语言程序总是从第一个定义的函数开始执行 B)C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分 一个C程序的执行是从() A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 C语言编程整个操作的过程是() A)编辑、编译、链接、执行 B)编译、编辑、链接、执行 C)链接、编译、编辑、执行 D)编辑、链接、编译、执行 下列说法不正确的是() A)链接操作将生成扩展名为.lnk的文件 B)编辑过程将生成扩展名为.cpp或.c的文件 C)编译过程将生成扩展名为.obj的文件 C)C编程最终要生成扩展名为.exe的文件 C语言提供了丰富的结构化语句,直接支持_、_和_三种基本程序结构。 A)顺序、分支、过程 B)顺序、分支、循环 C)分支、过程、循环 D)顺序、过程、循环 下列说法正确的是() A)C语言版本众多,但这些版本大多不能兼容 B)C语言只能在固定的操作系统上运行。 C)C语言不包含依赖硬件的输入/输出语句,其输入/输出功能语句需要手工来编写。 D)C语言允许对位、字节、地址这些计算机功能中的基本成分进行操作。 当用户用编辑器将C语言程序录入到计算机后,就建立一个源文件,则() A)源文件可以直接被计算机执行 B)源文件需要编译后就可执行 C)源文件经过编译链接后生成的可执行程序和源程序是独立的 D)错误调试一般在执行过程进行 下列说法中正确的是( ) A由于C源程序是高级语言程序,因此一定要在VC+软件中输入 B由于C源程序是字符组成,因此可以作为文本文件在任何文本编辑的软件中输入 C由于C程序是高级语言程序,因此输入后即可执行 D由于C程序是高级语言程序,因此它由命令组成 下列说法中错误的是( ) A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其它函数 C. 任何非主函数可以调用其它任何非主函数 D. 程序可以从任何非主函数开始执行答案:BBDCC CBCCA AABDC BD基本数据类型及计算 下列不正确的C语言用户标识符是_。 A) int B) a_1_2 C) ab1exe D) _x 下列正确的C语言标识符是_。 A) #define B) _123 C) %d D) n 下列四组字符串中都可以用作语言程序标识符的一组是_ 。 A) print _123 Pxq str_l B) _3d one_half My-book Cpp C) oodb start$it line# pow D) aBc 3pai His.age while 下面各选项组中,均是C语言关键字的组是_ 。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 下列不属于C语言关键字的是_ 。 A) default B) register C) enum D) external 执行语句 printf(%x,-1);屏幕显示_。 A) -1 B) 1 C) -ffff D) ffffffff 已知 int a=2,b=1,c;执行语句c=b/a+2.5后, c的值_。 A) 2.5 B) 3 C) 3.0 D) 2 有关变量已经定义,以下合法的数值表达式是_。 A) a=1/b=2 B) +(a+b) C) b=b/(a=6) D) c=int(a)+b 将字符g赋给字符变量c,正确的表达式是_ 。 A) c=147 B) c=147 C) c=147 D) c=0147 下列转义字符中错误的一个是_。 A) 000 B) 014 C) x111 D) 2 将空格符赋给字符变量c,正确的赋值语句是_。 A) c=0 B) c=NULL C) c=0 D) c=32 已知:char a=70;则变量a中 。 A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明非法 字符串EOFn=-61的长度是_。 A) 8 B) 9 C) 14 D) 非法字符串 字符串的长度是_。 A) 0 B) 1 C) 2 D) 非法字符串 已知:char a;int b;float c;double d;执行语句c=a+b+c+d;后,变量c的数据类型是 。 A) int B) char C) float D) double 逗号表达式(a=3*5,a*4),a+15的值是_。 A) 15 B) 60 C) 30 D) 不确定 如果int a=1,b=2,c=3,d=4;则条件表达式ab?a:cd?c:d的值是_。 A) 1 B) 2 C) 3 D) 4 已知int i=10;表达式20-0=i5&+x10; A) 1 B) 2 C) 3 D) 4 为判断字符变量c的值不是数字也不是字母时,应采用下述表达式_。 A) c=57&c=90&c=122 B) !(c=57&c=90&c=122) C) c=48&c=65&c=97&c=48&c=65&c=97&c=122) 已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是_。 A) 0 B) 1 C) 5 D) 6 答案:ABABD DDCCC DABAC CABBD C输入和输出 设a=3,b=4, 执行“printf(“a=%d,B=%d,a,b);”的输出是( ) A. a=3,b=4 B. 3,4 C. a=3,B=4 D.a=3 B=4 设a=1234,b=12,c=34 执行“printf(“|%3d%3d%-3d|n”,a,b,c); ”的输出是( ) A.|12341234 | B.|1231234| C.|123412-34| D.|2341234| 使用“scanf(“x=%f,y=%f”,&x,&y);”,要使x,y均为1.25,正确的输入是( ) A. 1.25,1.25 B. 1.251.25 C. x=1.25,y=1.25 D. x=1.25 y=1.25 要使double x; long a; 获得数据,正确的输入语句是( ) A. scanf(“%d,%f”,&a,&x); B. scanf(“%f,%ld”,&x,&a); C. scanf(“%d,%lf”,&a,&x); D. scanf(“%ld,%lf”,&a,&x); 设有int a=255,b=8;则printf(“%x,%on”,a,b);的输出的是( ) A. 255,8 B. ff,10 C. 0xff,010 D. 输出格式错 设a、b为字符型变量,执行“scanf(“a=%c,b=%c”,&a,&b);”后使a为A,b为B,从键盘上的正确输入是( ) A. AB B. A,B C. A=A,B=B D. a=A,b=B 语句printf(“%f%”,1.0/3);的输出结果为: A.0.333333 B.0.333333% C.0.333333% D.出错 已有定义int x ;float y;且执行scanf(%3d%f,&x,&y);输入数据为12345 678,则x和y的值为: A.123 45.000000 B.123 678.000000 C.12345 678.000000 C.345 678.000000 有如下的定义和输入语句: int a1,a2;char c1,c2; scanf(%d%d,&a1,&a2); scanf(%c%c,&c1,&c2); 若要求a1,a2,c1,c2的值分别为10、20、A和B,则正确的数据输入方式为( ) A. 1020AB B. 10 20AB C. 10 20 AB D. 10 20AB 已有定义:float f1,f2;程序运行时输入数据为4.52 3.5 ,则输入语句正确的为( ) A.scanf(%f,%f,&f1,&f2); B.scanf(%f%f,&f1,&f2); C.scanf(%f%fn,&f1,&f2); D.scanf(%3f%f,&f1,&f2); 下列数据中属于“字符串常量”的是( ) A“a” B. ABC C. abc0 D. a 在PC机中,n在内存占用的字节数是( ) A. 1 B. 2 C. 3 D. 4 在PC机中,“axff” 在内存占用的字节数是( ) A. 5 B. 6 C. 3 D. 4 在C语言中,合法的长整型常数是( ) A. 0L B. 4962710 C. 0.054838743 D. 2.1869e10 下列数据中不属于“字符常量”的是( ) A. a B. 160 C. 070 D. 070 答案:CACDB DBADB AACAD程序控制结构 结构化程序设计的3种结构是 A)顺序结构、选择结构、转移结构 B)分支结构、等价结构、循环结构 C)多分支结构、赋值结构、等价结构 D)顺序结构、选择结构、循环结构 已知 int t=0; while (t=1) .则以下叙述正确的是 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 有如下程序: 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=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2 有以下程序 main() int i=1,j=1,k=2; if(j+|k+)&i+) printf(%d,%d,%dn,i,j,k); 执行后输出结果是 A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 有如下程序 main() float x=2.0,y; if(x0.0)y=0.0; else if(x6)n-; printf(%d,n); 该程序的输出结果是 A)987 B)876 C)8765 D)9876 在下列选项中,没有构成死循环的是 A)int i=100; while(1) i=i%100+1; if(i100)break; B)for(;); C)int k=10000; dok+;while(k10000); D)int s=36; while(s)-s; 有如下程序段 #include stdio.h main() int a=10,b=50,c=30; a=a30?1:2; b=b30?1:2; c=c30?1:2; printf(%d,%d,%dn,a,b,c); 则执行结果为 A)2,1,2 B)1,2,1 C)1,1,2 D)2,1,1 阅读如下程序段 #include stdio.h main() int a=45,b=40,c=50,d; d=a30?b:c; switch(d) case 30 : printf(%d,a); case 40 : printf(%d,b); case 50 : printf(%d,c); default : printf(#); 则输出的结果是 A)40,50, B)50,# C)40,# D)40,50,# 若有定义int k=10;则下列程序的输出结果为 do printf(%d,k-); while(!k); A)9 B)10 C)10987654321 D)没有输出 阅读下列程序段,则程序的输出结果是 #include stdio.h main() int a=10,b=10,k; for(k=0;a8;b=+k) printf(%d,%d,a-,-b); printf(n); A)10,10,10,0, B)10,9,9,0, C)10,10,9,1, D)9,9,9,1, 下列程序的运行结果是 #include stdio.h main() int a,b,m; for(a=5;a=1;a-) m=0; for(b=a;b=5;b+) m=m+a*b; printf(%dn,m); A)30 B)15 C)20 D)10 若int i,j;,则for(i=j=0;i10&j8;i+,j+=3)控制的循环体执行的次数是() A)9 B)8 C)3 D)2 下列程序的输出结果是 #include stdio.h main() int i=6; while(i-) printf(%d,-i); printf(n); A)531 B)420 C)654321 D)死循环 阅读下列程序,则执行结果是 #include stdio.h main() int a=0,b=0,c=0,i; for(i=0;i4;i+) switch(i) case 0:a=i+; case 1:b=i+; case 2:c=i+; case 3:i+; printf(%d,%d,%d,%dn,a,b,c,i); A)0,1,3,4 B)1,2,3,4 C)0,1,2,5 D)0,2,3,4 下面程序的运行结果是 #include stdio.h main() int j,i,k=0; for(j=50;j=60;j+) if(!(k%10)printf(n); for(i=2;i=j-1)printf(%d,j); k+; A)5359 B)5953C)3595 D)9535 已知char ch=C;则以下表达式的值是 ch=(ch=A & ch=Z)?(ch+32):ch; A)A B)a C)Z D)c 下列程序的运行结果是 #include stdio.h main() int x=-9,y=5,z=8; if(xy) if(y0)z=0; else z+=1; printf(%dn,z); A)6 B)7 C)8 D)9 现有定义int k=1;则执行语句while(+k4);后,k的值为 A)4 B)5 C)6 D)8 以下程序的运行结果为 #include stdio.h main() int m,n; for(m=0,n=10;m=0;i-) ai=10-i; printf(“%d%d%d”,a2,a5,a8); A.258 B.741 C.852 D.369 14、以下程序运行后的输出结果是( )。 main() int p8=11,12,13,14,15,16,17,18,i=0,j=0; while(i+7) if(pi%2)j+=pi; printf(%dn,j); A.42 B.45 C.56 D.60 15、以下程序执行后输出结果是( )。 main() int p7=11,13,14,15,16,17,18,i=0,k=0; while(i7&pi%2) k=k+pi;i+; printf(%dn,k); A.58 B.56 C.45 D.24 16、设int x10=0,2,4;,假定在VC编译环境下,int类型变量占用四个字节,则数组x在内存中所占字节数是( )。 A.6 B.12 C.20 D.40 17、定义: int a22; 则数组 a在内存中的存放顺序为( )。 A.a00、a10、a01、a11 B.a00、a01、a10、a11 C.a00、a11、a01、a10 D.a00、a11、a10、a01 18、以下数组定义中不正确的是( )。 A.int a23; B.int b3=0,1,2,3; C.int c100100=0; D.int d3=1,2,1,2,3,1,2,3,4; 19、以下程序的输出结果是( )。 main() int a33=1,2,3,4,5,6,i,j,s=0; for(i=1;i3;i+) for(j=0;j=i;j+) s+=aij; printf(“%dn”,s); A.18 B.19 C.20 D.21 20、数组定义为int a32=1,2,3,4,5,6,数组元素( )的值为6。 A.a32 B.a21 C.a12 D.a23 21、以下程序的输出结果是( )。 main() int i,x33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(“%d,”,xi2-i); A.1,5,9 B.1,4,7 C.3,5,7 D.3,6,9答案:BCADC CBCDC CDCBD DBDAB C 指针 1.执行以下程序后,a的值为( ). main() int a,k=4,m=6,*p1=&k,*p2=&m; a=p1=&m; printf(a=%d,a); A)-1 B)1 C)0 D)4 2.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误的原因是( ). main() int *p,*q,a,b; p=&a; printf(ninput a:); scanf(%d,*p); A)*p表示的是指针变量p的地址. B)*p表示的是变量a的值,而不是变量a的地址. C)*p表示的是指针变量p的值 D)*p只能用来说明p是一个指针变量 3.已有定义 int k=2;int *ptr1,*ptr2;且ptr1t 、ptr2均已指向变量k,下面不能正确执行 的赋值语句是( ) A) k=*ptr1+*ptr2 B) prt2=k; C) ptr1=ptr2 D) k=*ptr1*(*ptr2); 4.变量的指针,其含义是指变量的( ) A) 值 B) 地址 C) 名 D) 一个标志 5.若有说明: int *p,m=5,n; 以下正确的程序是( ) A) p=&n; scanf(%d,&p); B)p=&n; scanf(%d,*p); C) scanf(%d,&n); *p=n; D) p=&n; *p=m; 6.下面程序段的运行结果是( ) char *s=abcde; s+=2; printf(%c,*s); A) cde B) 字符c C) 字符c的地址 D) 无确定的输出结果 7.设指针x指向的变量值为25, 则printf(%dn,+*x);的输出结果是( ) A)23 B)24 C)25 D)26 8.若有定义char s10;则在下面表达式中不表示s1的地址的是( ) A) s+1 B) s+ C) &s0+1 D) &s1 9.有以下程序 #include main() char str20=Hello,Beijing,*p=str; printf(%dn,strlen(p+20); 程序运行后的输出结果是( ) A)0 B)5 C)7 D)20 10.有以下程序 main() int a33,*p,i; p=&a00; for(i=0;i9;i+) *(p+i)=i+1; printf(%d n,a12); 程序运行后的输出结果是( ) A)3 B)6 C)9 D)2 11.已定义以下函数 fun(int *p) return *p; 该函数的返回值是( ) A)不确定的值 B)形参p中存放的值 C)形参p所指存储单元中的值 D)形参p的地址值 12.对于基类型相同的指针变量,不能进行( )运算。 A) + B)- C) = D)= = 13.若已定义a为int型变量,则对p的说明和初始化正确的是( ) A) int *p=a; B)int p=a; C) int p=a; D)int *p=&a; 14.设有如下程序段 char str=”hello”; char *ptr; ptr=str; 执行完上面的程序后,*(ptr+5)的值为( ) A) 0 B)0 C)不确定的值 D)0的地址 15.若x为整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是( ) A)pb=&x B)pb=x C)*pb=&x D)*pb=*x 答案:CBBBD BDBCB CADBA 函数 1建立函数的目的之一是: A) 提高程序的可读性 B) 提高程序的执行效率 C) 减少程序的篇幅 D) 减少程序文件所占内存 2C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是 A) void B) int C) float D) double 3C语言中,形参的缺省存储类别是 A) auto B) register C) static D) extern 4以下正确的函数定义形式是 A) double fun(int x, int y); B) double fun(int x; int y) C) double fun(int x,int y) D) double fun(int x, y) 5以下叙述中正确的是 A)全局变量的作用域一定比局部变量的作用域范围大 B)静态(static)类别变量的生存期贯穿于整个程序的运行期间 C)函数的形参都属于全局变量 D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值 6若程序中定义了以下函数 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); 7有以下程序 char fun(char x , char y) if(xy) return x; return y; main( ) int a=9,b=8,c=7; printf(%cn,fun(fun(a,b),fun(b,c); 程序的执行结果是() A) 函数调用出错 B)8 C)9 D)7 8以下正确的说法是_。 在C语言中 A)实参和与其对应的形参各占用独立的存储单元 B)实参和与其对应的形参共占用一个存储单元 C)只有当实参和与其对应的形参同名时才共占用存储单元 D)形参是虚拟的,不占用存储单元 9以下不正确的说法是_ C语言规定 A) 实参可以是常量、变量或表达式 B) 形参可以是常量、变量或表达式 C) 实参可以为任意类型 D) 形参应与其对应的实参类型一致 10若调用一个函数,且此函数中没有return语句,则正确的说法是_ A)没有返回值 B)返回若干个系统默认值 C)能返回一个用户所希望的函数值 D)返回一个不确定的值 11C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是_ A) 地址传递 B) 单向值传递 C) 由实参传给形参,再由形参传回给实参 D) 由用户指定传递方式 12以下程序有语法性错误,有关错误原因的正确说法是_ main() int G=5, k; void prt_char( ); k=prt_char(G); A)语句void prt_char();有错,它是函数调用语句,不能用void说明 B)变量名不能使用大写字母 C)函数说明和函数调用语句之间有矛盾 D)函数名不能使用下划线 13以下函数调用语句含有实参的个数为_ fun(exp1,exp2),(exp3,exp4,exp5) ; A) 1 B) 2 C) 4 D) 5 14以下错误的描述是_ 函数调用可以 A)出现在执行语句中 B)出现在一个表达式中 C)做为一个函数的实参 D)做为一个函数的形参 15以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序 void sort(int a,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj) t=ai;ai=aj;aj=t; main() int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(&aa3,5); for(i=0;i10;i+) printf(%d,aai); printf(n); 程序运行后的输出结果是_。 A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1, C) 1,2,3,8,7,6,5,4,9,10, D) 1,2,10,9,8,7,6,5,4,3, 16以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。 void reverse(int a,int n) int i,t; for(i=0;in/2;i+) t=ai;ai=an-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for(i=6;i10;i+) s+=bi; printf(%dn,s); 程序运行后的输出结果是_。 A) 22 B) 10 C) 34 D) 30 17有以下程序 void ss(char *s,char t) while(*s) if(*s=t) *s=t-a+A; s+; main() char str1100=abcddfefdbd,c=d; ss(str1,c); printf(%sn,str1); 程序运行后的输出结果是_。 A) ABCDDEFEDBD B) abcDDfefDbD C) abcAAfefAbA D) Abcddfefdbd 18有以下程序 void f(int x,int y) int t; if(xy) t=x; x=y; y=t; main() int a=4,b=3,c=5; f(a,b); f(a,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论