《C语言-选择题(最全版)(共23页).doc》由会员分享,可在线阅读,更多相关《C语言-选择题(最全版)(共23页).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上C语言程序设计基础知识练习50101、 在C语言源程序中,以下叙述正确的是( )。答案:CA、 main函数必须位于文件的开头 B、 每行只能写一条语句 C、 程序中的一个语句可以写成多行D、 每个语句的最后必须有点号50102、 关于C语言的源程序的叙述中,错误的是( )。答案:CA、 C语言的源程序由函数构成B、 main函数可以书写在自定义函数之后 C、 必须包含有输入语句D、 一行可以书写多个语句50103、 关于C语言数据类型的叙述,正确的是( )。答案:CA、 枚举类型不是基本类型B、 数组不是构造类型C、 变量必须先定义后使用D、 不允许使用空类型501
2、04、 C程序中main函数的位置( )。答案:CA、 必须在最开始B、 必须在系统库函数后面C、 可以在自定义函数后面D、 必须在最后50105、 C语言的函数体由( )括起来。答案:BA、 ( )B、 C、 D、 /* */50106、 关于C语言的叙述中,不正确的是( )。答案:DA、 C程序可由一个或多个函数组成B、 C程序必须包含一个main()函数C、 C程序的基本组成单位是函数D、 注释说明只能位于一条语句的后面50107、 以下叙述不正确的是( )。答案:DA、 C程序的执行总是从main函数开始B、 一个C源程序必须包含一个main函数C、 C语言程序的基本组成单位是函数D、
3、 在编译C程序源程序时,可发现注释中的拼写错误50108、 结构化程序设计的三种基本结构是( )。答案:CA、 函数结构、分支结构、判断结构B、 函数结构、嵌套结构、平行结构C、 顺序结构、分支结构、循环结构D、 分支结构、循环结构、嵌套结构50109、 对于C语言源程序,以下叙述错误的是( )。答案:CA、 可以有空语句B、 函数之间是平等的,在一个函数内部不能定义其它函数C、 程序调试时如果没有提示错误,就能得到正确结果D、 注释可以出现在语句的前面50201、 下面关于C语言用户标识符的描述,正确的是( )。答案:DA、 不区分大小写B、 用户标识符不能描述常量C、 类型名也是用户标识符
4、D、 用户标识符可以作为变量名50202、 以下( )是正确的变量名。答案:DA、 5fB、 ifC、 f.5D、 _f550203、 以下( )是正确的常量。答案:DA、 E-5B、 1E5.1C、 a12D、 32766L50204、 以下( )是正确的变量名。答案:DA、 a.beeB、 -p11C、 intD、 p_1150205、 以下( )是正确的字符常量。答案:CA、 cB、 C、 WD、 32a50206、 以下( )是不正确的字符串常量。答案:AA、 abcB、 1212C、 0D、 50207、 以下( )是错误的整型常量。答案:BA、 -0xcdfB、 018C、 0xe
5、D、 01150208、 以下( )是正确的浮点数。答案:BA、 e3B、 .62C、 2e4.5D、 12350209、 若有说明语句:char c=95; 则变量c包含( )个字符。答案:AA、 1B、 2C、 3D、 语法错误50301、 若有定义:int a=2; 则正确的赋值表达式是( )。答案:AA、 a-=(a*3)B、 double(-a)C、 a*3D、 a*4=350302、 语句x=(a=3,b=+a);运行后,x、a、b的值依次为( )。答案:CA、 3,3,4B、 4,4,3C、 4,4,4D、 3,4,350303、 语句a=(3/4)+3%2;运行后,a的值为(
6、)。答案:BA、 0B、 1C、 2D、 350304、 char型变量存放的是( )。答案:AA、 ASCII代码值B、 字符本身C、 十进制代码值D、 十六进制代码值50305、 若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为( )。答案:CA、 3,3B、 4,4C、 4,3D、 3,450306、 若有定义:int a; 则语句a=(3 * 4)+ 2 % 3;运行后,a的值为( )。答案:BA、 12B、 14C、 11D、 1750307、 若有定义:int a,b; double x,则以下不符合C语言语法的表达式是( )。答案:AA、 x%(-
7、3)B、 a+=-2C、 a=b=2D、 x=a+b50308、 若有定义:int x=2,y=3;float i;,则以下符合C语言语法的表达式是( )。答案:BA、 x=x*3=2B、 x=(y=1)C、 i=float(x)D、 i%(-3)50309、 设double型变量a,b,c,e均有值;对代数式(3ae)/(bc),不正确的C语言表达式是( )。答案:CA、 a/b/c*e*3B、 3*a*e/b/cC、 3*a*e/b*cD、 a*e/c/b*350401、 下面叙述正确的是( )。答案:BA、 2/3 与 2.0/3.0 等价B、 (int)2.0/3 与 2/3 等价C、
8、 +5 与 6 等价D、 A与A等价50402、 下面叙述中,错误的是( )。答案:AA、 其算术运算对象不包含函数B、 %(模运算符)的运算对象只能为整型量C、 算术运算符的结合方向是自左至右D、 自加和自减运算符的结合方向是自右至左50403、 下面叙述正确的是( )。答案:AA、 强制类型转换运算的优先级高于算术运算B、 若a和b是整型变量,(a+b)+是合法的C、 A*B 是不合法的D、 A+B是合法的50404、 若有定义:int k,i=2,j=4; 则表达式 k=(+i)*(j-) 的值是( )。答案:BA、 8B、 12C、 6D、 950405、 设整型变量a为5,使b不为2
9、的表达式是( )。答案:CA、 b=(+a)/3B、 b=6-(-a)C、 b=a%2D、 b=a/250406、 若有定义:int a=1,b=2,c=3; 则语句 +a|+b&+c;运行后b的值为( )。答案:CA、 1B、 0C、 2D、 350407、 若有定义:int i,j;则表达式(i=2,j=5,i+,i+j+)的值是( )。答案:BA、 7B、 8C、 9D、 1050408、 若有定义:int a,b;则表达式(a=2,b=5,a*2,b+,a+b)的值是( )。答案:BA、 7B、 8C、 9D、 1050409、 若有定义:int m=5,n=3;则表达式(m+1,n+
10、1,(-m)+(n-)的值是( )。答案:BA、 6B、 7C、 8D、 950501、 已知 int a;使用scanf()函数输入一个整数给变量a,正确的函数调用是( )。答案:BA、 scanf(%d,a);B、 scanf(%d,&a);C、 scanf(%f,&a);D、 scanf(%lf,&a);50502、 已知 double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是( )。答案:DA、 scanf(%ld,&a);B、 scanf(%d,&a);C、 scanf(%7.2f,&a);D、 scanf(%lf,&a);50503、 已知 char a;使
11、用scanf()函数输入一个字符给变量a,不正确的函数调用是( )。答案:BA、 scanf(%d,&a);B、 scanf(%lf,&a);C、 scanf(%c,&a);D、 scanf(%u,&a);50504、 putchar()函数的功能是向终端输出( )。答案:BA、 多个字符B、 一个字符C、 一个实型变量值D、 一个整型变量表达式50505、 getchar()函数的功能是从终端输入( )。答案:DA、 一个整型变量值B、 一个实型变量值C、 多个字符D、 一个字符50506、 若有定义:int x=1234,y=123,z=12;则语句printf(%4d+%3d+%2d,
12、x, y, z);运行后的输出结果为( )。答案:DA、 B、 C、 1234+1234+1234D、 1234+123+1250507、 已有如下定义和输入语句,int a; char c1,c2;scanf(%d%c%c,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是( )。答案:AA、 10ABB、 10 A BC、 10A BD、 10 AB50508、 已有如下定义和输入语句:int a,b;scanf(%d,%d,&a,&b);若要求a、b的值分别为10和20,正确的数据输入是( )。答案:BA、 10 20B、 10,20C、 a=10,b=
13、20D、 10;2050509、 以下程序的运行结果是( )。void main() int a=65; char c=A; printf(%x,%d,a,c);答案:DA、 65,aB、 41,aC、 65,65D、 41,6550601、 下面叙述中,( )不是结构化程序设计中的三种基本结构之一。答案:AA、 数据结构B、 选择结构 C、 循环结构D、 顺序结构50602、 下面叙述中,( )不是结构化程序设计三种基本结构的共同特点。答案:AA、 先判断后执行B、 单入口,单出口C、 程序中没有执行不到的语句D、 无死循环50603、 结构化程序设计不包括( )。答案:AA、 最优化B、
14、自顶而下,逐步细化C、 模块化设计D、 结构化编码50604、 以下运算符中优先级最高的是( )。答案:DA、 B、 |C、 &D、 +50605、 若有定义:int x=3,y=4;则表达式 !x|y 的值为( )。答案:AA、 1B、 OC、 3D、 450606、 若有定义:int i=7,j=8;则表达式 i=j|ij 的值为( )。答案:AA、 1B、 变量i的值C、 0D、 变量j的值50607、 若希望当a的值为奇数时,表达式的值为真,a的值为偶数时,表达式的值为假。则不能满足要求的表达式是( )。答案:CA、 a%2=1B、 !(a%2=0)C、 !(a%2)D、 a%2506
15、08、 若有定义:int x=3,y=4,z=5;则值为0的表达式是( )。答案:DA、 x&yB、 x=yC、 x|y+z&y-zD、 !(xy)&!z|1)50609、 若有定义:int a=5,b=2,c=1;则表达式a-bb)&(y=cd) 的值为( )。答案:AA、 0B、 1C、 5D、 650707、 若有定义:int a=2,b=3; float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是( )。答案:AA、 3.5B、 3.0C、 2.5D、 2.050708、 若有定义:int b=7; float a=2.5,c=4.7
16、;则表达式a+(b/2*(int)(a+c)/2)%4的值是( )。答案:CA、 2.5B、 3.5C、 4.5D、 5.550709、 若有定义:int a=6,b=2;char c1=a,c2=b;则表达式a+b%5+c2-c1的值是( )。答案:CA、 7B、 8C、 9D、 表达式错误50801、 以下的if语句中,x的值一定被重新赋值的是( )。答案:BA、 if(x=y) x+=y;B、 if(xy & x!=y ); x+=y;C、 if(x!=y) scanf(%d,&x); else scanf(%d,&y); D、 if(xy) z=x+y;else z=x-y;答案:BA
17、、 3B、 -1C、 4D、 不确定 50805、 若有定义:int a=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为( )。if (a=6) printf(%dn,n); else printf(%dn,+n);答案:DA、 4B、 5C、 6D、 750901、 设有整型变量x,下述语句( )不会出现死循环。答案:BA、 for(;x+=1);B、 for(;(x=getchar()!=n;);C、 while(1) x+;D、 for(x=10;x-);50902、 对于整型变量x,与while(!x)等价的是( )。答案:BA、 while(x!=0)B、 while(x
18、=0)C、 while(x!=1)D、 while(x)50903、 对于整型变量x和y,语句 for(x=0,y=0;(y!=123)&(x4);x+) y+; 中的“y+;”被执行( )。答案:AA、 4次B、 0次C、 123次D、 3次50904、 在c语言中while循环和do-while循环的主要区别是( )。答案:BA、 do-while循环体内可以使用break语句,while循环体内不能使用break语句B、 do-while的循环体至少无条件执行一次,while的循环体不是C、 do-while循环体内可以使用continue语句,while循环体内不能使用continue
19、语句D、 while的循环体至少无条件执行一次,do-while的循环体不是50905、 以下程序段运行后,循环体运行的次数为( )。int i=10,x;for (;i10;i+)x=x+i;答案:BA、 10B、 0C、 1D、 无限50906、 以下程序段运行后变量n的值为( )。int i=1,n=1;for (;i3;i+) continue;n=n+i;答案:DA、 4B、 3C、 2D、 150907、 以下程序的运行结果是( )。void main() int sum = 0, item = 0; while(item 5) item+; sum += item; if(sum
20、=5) break; printf(%dn,sum);答案:BA、 10B、 15C、 5D、 650908、 以下程序的运行结果是( )。void main() int sum = 0, item = 0; while(item =6) break; printf(%dn,sum);答案:CA、 10B、 15C、 6D、 750909、 以下程序的运行结果是( )。void main() int sum = 0, item = 0; while(item 5) item+; if(item = 2) continue; sum += item; printf(%dn,sum);答案:BA、
21、 10B、 13C、 15D、 151001、 下列数组定义中,正确的是( )。答案:AA、 int a5=0;B、 int a=0 1 2;C、 int a5=0;D、 int a;51002、 下列数组定义中,正确的是( )。答案:AA、 int a10;B、 int n=10,an;C、 int N=10;int aN;D、 int n;scanf(%d,&n); int an;51003、 已知 int a10; 则对a数组元素引用不正确的是( )。 答案:AA、 a10B、 a3+5C、 a10-10D、 a551004、 若有定义:int a3=0,1,2;则a1的值为( )。答案
22、:BA、 0B、 1C、 2D、 351005、 若有定义:int a5=1,2,3,4,5;则语句a1=a3+a2+2-a3-1;运行后a1的值为( )。答案:AA、 6B、 5C、 1D、 251006、 以下能对一维数组a进行正确初始化的语句是( )。答案:DA、 int a5=(0,0,0,0,0);B、 int a5=0;C、 int a5=1,2,3,4,5,6,7;D、 int a=0;51007、 下面程序段的运行结果是( )。int i=0,a=3,4,5,4,3;do ai+; while(a+i5);for(i=0;i5);for(i=0;i2);for(i=0;i5;i
23、+) printf(%d ,ai);答案:AA、 11 2 3 4 5B、 1 2 3 4 5C、 11 12 13 14 15D、 11 12 3 4 5 51101、 设有如下程序段:int a33=1,0,2,1,0,2,1,0,1,i,j,s=0;for(i=0;i3;i+) for(j=0;ji;j+) s=s+aij;则执行该程序段后,s的值是( )。答案:CA、 0B、 1C、 2D、 351102、 有如下定义 int a3=1,2,3,4,5,6,7,8;则数组a的行数是( )。答案:BA、 2B、 3C、 4D、 无法确定的51103、 以下数组定义中,正确的是( )。答案
24、:DA、 int a23=1,2,3,4,5,6,7;B、 int a=1,2,3,4,5,6,7,8,9;C、 int a2= 1,2,3,4,5,6;D、 int a4= 6;51104、 若有定义:int a34=1,2,0,1,2,3;则a11的值为( )。答案:AA、 0B、 1,2C、 1D、 351105、 若有定义:int a33;则表达式&a21-a的值为( )。答案:AA、 7B、 8C、 6D、 951106、 若有定义:int i=0,x=0;int a33=1,2,3,4,5,6,7,8,9;则以下程序段运行后x的值为( )。for (;i3;i+) x+=ai2-i
25、;答案:CA、 0B、 12C、 15D、 1851107、 若有定义int a23;则对数组元素的非法引用是( )。答案:DA、 a01/2B、 a11C、 a4-40D、 a0351108、 以下数组定义中,正确的是( )。答案:CA、 int a2=1,2,3,4,5;B、 int a2=0,;C、 int a22=1,2,3;D、 int a=1,2,3,4;51109、 若有定义int a3=1,2,3,4,5,6,7,8,9;则表达式sizeof(a)/sizeof(a0)的值为( )。答案:DA、 3B、 4C、 5D、 951201、 设有以下变量定义: char str1=s
26、tring,str28,*str3,*str4=string;( )是正确的。答案:AA、 strcpy(str1,China);B、 str2=China;C、 strcpy(*str3,China);D、 strcpy(str40,China);51202、 有如下定义: char str6= a,b,0,d,e,f;则语句: printf(%s,str);的输出结果是( )。答案:DA、 abB、 abdefC、 ab0D、 ab51203、 设有如下数组定义: char str8= FuJian;则分配给数组str的存储空间是( )个字节。答案:CA、 6B、 7C、 8D、 9512
27、04、 若有定义:char a=abcdef;char b=xyz;则以下程序段运行后屏幕输出为( )。strcpy(a,b);printf(%c,a2);答案:BA、 cB、 zC、 0D、 d51205、 以下程序段运行后屏幕输出为( )。char a=abc0mis;printf(%d,strlen(a);答案:CA、 5B、 8C、 3D、 451206、 若有定义:int a=2;则语句a=strcmp(miss,miss);运行后a的值为( )。答案:BA、 1B、 0C、 -1D、 251207、 以下程序段运行后屏幕输出为( )。 char str=abcd; printf(%
28、d,strlen(str);答案:BA、 4B、 5C、 6D、 751208、 以下程序段运行后屏幕输出为( )。char str80;strcpy(str,hello);printf(%d,strlen(str);答案:AA、 5B、 6C、 7D、 8051209、 若有定义:char str16=abcdm,*ps,*str2=abcdef;( )是正确的。答案:BA、 strcpy(str1,str2); B、 表达式strcmp(str1,str2)的值大于0C、 str1=str2;D、 表达式strlen(str1)的值为651301、 设有如下函数定义:int fun(cha
29、r *str) char *p=str; while ( *p != 0) p+; return (p-str);则以下语句执行后的输出结果是( )。printf(%dn,fun(Student);答案:AA、 7B、 8C、 9D、 1051302、 以下程序的运行结果是( )。int fun(int array44) int j; for(j=0;j4;j+) printf(%2d,array2j); printf(n);main() int a44=0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0; fun(a);答案:AA、 2 0 0 5B、 1 0 0 4C、 0 1
30、 2 0D、 0 4 5 051303、 如下fun函数的类型是( )。fun(float x)double y; int z ; y=x * x ; z=(int)y ; return(z);答案:CA、 voidB、 doubleC、 intD、 float51304、 以下程序运行后屏幕输出为( )。#includeint f(int x,int y) return(x+y);main() int a=2,b=3,c; c=f(a,b); printf(%d+%d=%dn,a,b,c);答案:BA、 0B、 2+3=5C、 2+3=0D、 3+2=551305、 以下程序运行后屏幕输出为
31、( )。#includeint a=2,b=3;int max(int a,int b) int c; c=ab?a:b; return(c);main() int a=4; printf(%d,max(a,b);答案:DA、 2,3B、 2C、 3D、 451306、 以下程序运行后屏幕输出为( )。#includevoid f(int i) int a=2; a=i+; printf(%d,a);main() int a=1,c=3; f(c); a=c+; printf(%d,a);答案:BA、 4,3B、 3,3C、 4,5D、 3,551307、 若有如下函数定义:int fun()
32、 static int k=0; return +k;以下程序段运行后屏幕输出为( )。int i;for(i=1;i=5;i+) fun();printf(%d,fun();答案:DA、 0B、 1C、 5D、 651308、 下面程序的输出结果是( )。#include int global=100;fun()int global=5;return +global;void main() printf(%dn,fun();答案:DA、 100B、 101C、 5D、 651309、 下列关于C语言函数的描述中,正确的是( )。答案:BA、 函数的定义可以嵌套,但函数的调用不可以嵌套B、 函
33、数的定义不可以嵌套,但函数的调用可以嵌套C、 函数的定义和函数的调用都可以嵌套D、 函数的定义和函数的调用都不可以嵌套51401、 若有以下宏定义,#define MOD(x,y) x%y则执行以下程序段后,z的值是( )。int z,a=15,b=100;z=MOD(b,a);答案:DA、 100B、 15C、 11D、 1051402、 以下叙述中,正确的是( )。答案:BA、 “#define PRICE=30”定义了与30等价的符号常量PRICEB、 预编译处理命令行都必须以“#”开头C、 宏名只能包含大写字母和数字字符D、 在程序的一行上可以书写几个有效的宏定义51403、 以下叙述中,正确的是( )。答案:AA、 宏展开不占用运行时间,只占用编译时间B、 预编译处理命令行必须以分号结束C、 一个源程序只能有一个预编译处理命令行D、 使用带参数的宏定义时,应该说明每个参数的数据类型51404、 以下的叙述中不正确的是( )。答案:CA、 宏展开不占用运行时间,只占用编译时间B、 宏名无类型C、 宏名必须用大写字母表示D、 预处理命令行都必须以#号开始51405、 若有定义:#define PI 3,则表达式PI*2*2的值为( )。答案:AA、 12B、 4
限制150内