《C语言基础题.doc》由会员分享,可在线阅读,更多相关《C语言基础题.doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流C语言基础题【精品文档】第 29 页第一单元 C语言概述一、选择题1、C语言中主函数的个数为( )个。A)1 B)2C)无穷个D)任意个2、以下关于C语言描述错误的是( )。A)一个C程序总是从main函数开始执行B)每个语句和数据声明的最后必须有一个分号C)C语言的注释符是以“/*”开始并以“*/”结束的D)一个C程序可以包含多个main函数3、C 语言源程序文件后缀为( )。A).EXE B).OBJ C) .CD).ASM4、C语言是由( )组成的。A)子程序 B)主程序与子程序C)函数 D)过程5、C语言属于( )语言A)机器语言B)汇编语言C)
2、高级语言D)面向对象语言第二单元 C语言基础一、选择题1、C语言中普通整型变量int在内存中占( )字节。A)1B)2C)3D)42、下列不是C语言基本数据类型的是 ( )。A)字符型 B) 整型C) 浮点型 D) 结构体3、有关自增、自减运算,以下只有( )是正确的。A) -f B) +78 C) ab+ D) d+4、已知A=7.5,B=2,C=3.6,表达式(AB & CA) | (AB)的值是( )。A)0B)10C)1D)5 5、若有x=1,y=2,z=3,则表达式(xy?x:y)= =z的值是( )。A)1B)2C)3D)06、 判断char型变量ch是否为大写字母的正确表达式是(
3、 )。A) A=ch=A)&(ch=A)&(ch=Z) D) (A= ch)7、判断整型变量digit是否为数字的正确表达式是( )。A) 0=ch=0)&(ch=0)&(ch=9) D) (0= ch)8、 一个C程序的执行是从( )。A) 本程序的main函数开始,到main函数结柬B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束9、在以下标识符中,合法的是( )A)if B) 0xy C)_xy D)case10、C语言中各种类型的数据其实决定了占用内存的字节
4、数。float占( )。A)一字节 B)二字节 C)四字节 D)八字节11、下列各选项中,( )是有效的标识符。A)ab B)3day C)day3 D)#abc12、以下叙述正确的是( )。 。A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中不允许a=10这种赋值。C) 在C程序中,%是只能用于整数运算的运算符D) 在C程序中,无论是整数还是实数,没有什么区别13、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量 a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( )。A)132 B)1,3,2C)a=1 b=3 c=2 D
5、)a=1,b=3,c=214、设整型变量a为5,使b不为2的表达式是( )。A) b = a/2 B) b = 6-(-a) C) b=a%2 D) b=a3?2:115、以下程序的输出结果是( )。int x=10,y=10; printf(“%d %dn”,x-,-y);A) 10 10 B) 9 9 C) 9 10 D) 10 916、选出下列标识符中不是合法的标识符的是( )。A) hot_do B) cat1 C) _pri D) 2ab17、设有如下定义: int x=10,y=3,z;则语句printf(%dn,z = x%y); 的输出结果是( )。A) 1 B) 0 C) 4
6、 D) 318、各种基本数据类型的存贮空间正确的长度排列为( )。A)int char floatdouble B)doublefloat intcharC)charint floatdouble D)floatint char=0|b=0)&(a0 |b=0 & b=0)&(a0 & b0) &(a+b023、C语言中,合法的字符型常数是( )。A)A B)“A” C) 65 D) A24、下列程序段的输出结果是( )。char c1,c2;c1=65;c2=65+32+1;printf(“%c,%c”,c1,c2);A)a,B B)a,b C)A,b D)A,B25、下列语句不具有赋值功能
7、的是()A)a*=b B)x=1 C)a+b D)a+26、在C语言中,存储一个整型、字符型、双精度实型变量所需的字节( )。A)2、1、8 B)4、1、4C)4、1、4 D)2、2、827、下列程序段输出结果是( )。int j=2 , i=1;j /= i*j;printf(“%d”,j);A)0 B)1 C)2 D)328、不是C语言提供的合法关键字是( )。A)switch B)char C)case D)this29、在C语言中,要求参加运算的数必须时整数的运算符是( )。A)/ B)* C)% D) =30、若已定义x和y为double类型,且x=1;则表达式y=x+3/2的值是(
8、 )。A)1 B)2 C)2.0 D)2.531、设a为整型变量,不能正确表达数学关系:10a15的C语言表达式是( )。A)10a10&a15 D)!(a=15)32、表达式“10!=9”的值是( )。A)true B)非零值 C)0 D)133、设a,b为字符型变量,执行scanf(“a=%c,b=%c”,&a,&b)后使a为A,b为B,从键盘上的正确输入是( )。A) A B B) A,B C)A=A,B=B D)a=A,b=B34、设有单精度变量f,其值为13.8。执行语句“n=( (int)f )%3;”后,n的值是( )。A)4 B)1 C)4.333333D)4.635、普通整形
9、int能够处理的数据范围是( )A)-3276732767 B)-3276832768 C)-3276732768 D)-327683276736、若定义x为double型变量,则能正确输入x值的语句是。A)scanf(“%f”,x); B)scanf(“%f”,&x);C)scanf(“%lf”,&x); D)scanf(“%5.1f”,&x)37、执行 x=(6*7%8+9)/5; 后,x的值为( )A)1 B)2 C)3 D)438、若有代数式3ae/bc,则不正确的c语言表达式是( )A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/b/c*339、设
10、有变量说明:float x = 4.0 , y = 4.0,下面使x为10.0的表达式是( )A)x -= y*2.5 B)x /= y+9 C)x *= y-6 D)x += y+240、以下能正确定义整型变量z、b、c并为其赋初值5的语句是( )A)int a=b=c=5; B)int a,c, c=5; C)a=5,b=5,c=5; D)a=b=c=5;41、C语言中双精度浮点型变量double在内存中占( )字节。A)1B)2C)4D)842、以下哪个数学函数的作用是求某数的平方根( )。A)sqrt()B)fabs()C)pow()D)exp()43、两次运行下面的程序,如果从键盘上
11、分别输入6和3,则输出结果是( )。int x;scanf(%d,&x);if(+x5) printf(%d,x);else printf(%dn,x -);A) 7和5 B) 6和3 C) 7和4 D)6和444、执行语句x=(a=3,b=a-)后,x,a,b的值依次为( )。A)3, 3, 2B)3,2,2C)3,2,3D)2,3,245、读出以下语句的输出结果是( )。 int x=10,y=10;printf(%d %dn,x-,-y);A) 10 10 B)9 9 C)9 10 D) 10 946、C语言中,合法的字符串型常数是( )。A)A B)A C) abcd D) abcd4
12、7、为表示关系xyz,应使用C语言表达式( )。A)(x=y)&(y=z) B)(x=y) AND (y=z)C)(x=y=z) D) (x=z)&(y=z)48、C语言的输入与输出操作是由( )完成的。A)输入语句 B)输出语句C)输入与输出函数D)输入与输出语句49、设有int x=11 ;则表达式(x+1/3)的值是( )。A)11.3 B)11.333333 C)11 D)1250、若已定义x和y为double类型,则表达式x = 1,y = x+3/2的值是( )A)1 B)2 C)2.0 D)2.5二、判断题()1、 “A”是一个字符常量。 X()2.、在程序运行过程中其值可以改变
13、的量称为变量。 V()3、在C语言中,变量可以先使用再定义。 X()4、在C语言中,所有算术运算符的优先级都相同。 X()5、程序中若要使用数学函数就必须包含头文件”math.h”。 V()6、程序中若要使用printf()函数就必须引用头文件”stdio.h”。 V()7、在标准C中,“=”是判断两个数是否相等。 X()8、在标准C中,使用所有输入输出函数必须包含“stdio.h”文件。 X()9、在C语言中输出数据时可以指定数据的精度,即小数点后保留几位。 V ( )10、C语言中的基本数据类型有字符型、整型和浮点型。 V ( )11、所有的C语言程序都必须有一个名为main的主函数。 V
14、 ( )12、/ 运算符要求运算数必须是整数。 X ( )13、Int, #a15 , char都是合法的标识符。X ( )14、b和b是不同的两种常量。 V ( )15、C语言本身没有输入输出语句,要实现输入输出必须调用相应的输入输出函数。 V 第三单元 算法一、判断题( )1、 算法简而言之就是基于某种计算机语言,利用数据结构来解决具体问题的思路和方法。 V( )2、 描述算法的图形化方法之一就是程序流程图。V( )3、 描述算法可以用自然语言、传统流程图、N-S流程图来描述。V( )4、 算法要有一定的逻辑性和健壮性。V( )5、 算法的特点之一是无穷性。X第四单元 顺序结构一、选择题1
15、、下列标识符中合法的标识符是( )A) int2 B) if C) 2two D) a#b2、选出下列标识符中不是合法的标识符的是( )A) hot_do B) cat113 C) INT D) _2ab3.、以下选项中属于C语言的数据类型是( )A) 字符串型 B) 双精度型 C) 逻辑型 D) 布尔型4、设有如下定义: int x=10,y=3, z; 则语句printf(%dn, z = x%y ); 的输出结果是( )A) 3 B) 0 C) 4 D) 15、设整型变量n的值为2,执行语句n += n;后,n的值是( )A) 0 B) 4 C) - 4 D) 2二、判断题( )1、结构
16、化程序设计的三种结构是顺序结构、选择结构和循环结构。V( )2、可以用printf(%d ,123);语句输出一个十六进制整数。X( )3、可以用scanf(%x,&da);语句从键盘接收一个八进制整数给变量da。X( )4、语句scanf(%5.2f, &a); 是正确的。X( )5、 如果a是一维字符数组名,则语句scanf(%s, &a); 是正确的。X第五单元 选择结构一、选择题1、有以下程序段int a;if (3&2)a=1;else a = 2;执行后a=( )。A)1 B)2 C)3 D)02、表达式:10!=9的值是( )。A) true B) 非零值 C) 0 D) 13、
17、设int x=1,y=1;表达式(!x+ | y-)的值是_( )。A)0 B) 1 C) 2 D)-14、设整型变量s, c1,c2的值均为2,则执行语句(s=(c1= =c2)后,s的值为:( )。 A)0 B)1 C)2 D)35、设整型变量a,b的值分别为1,0,那么a & b的结果是( )。 A)0 B)1 C)2 D)都不对6、设整型变量a,b的值分别为1,0,那么a | b的结果是( )。 A)0 B)1 C)2 D)都不对7、设整型变量a,b的值分别为1,0,那么a != b的结果是( )。 A)0 B)1 C)2 D)都不对8、设整型变量a,b的值分别为1,0,那么a | (
18、b+)的结果是( )。A)0 B)1 C)2 D)都不对9、设整型变量a,b的值分别为1,0,那么a & (+b)的结果是( )。A)0 B)1 C)2 D)都不对10、设整型变量a,b的值分别为1,2,那么表达式 ab?a+b:a-b的结果是( )。A)1 B)2 C)3 D)-111、下边程序段int a=2,b=3,c=4;if(c=a+b) printf(“OK!”)else printf(“NO!”);输出结果是( )。A)OK! B)NO C)程序错误 D)以上都不对12、设整型变量a,b的值分别为1,0,那么a= =b 的结果是( )。A)0 B)1 C)2 D)都不对13、设整
19、型变量a,b的值分别为1,0,那么!(a = = b)的结果是( )。A)0 B)1 C)2 D)都不对14、设整型变量a,b的值分别为1,2,那么!a & b的结果是( )。A)0 B)1 C)2 D)都不对15、设x为非零,则下列描述错误的是( )。A)!(x = = 0) B)x != 0 C)3*x != 0 D)x016、下列表达式的值中哪个表示为逻辑假( )。A)1 B)3 C)0 D)-117、设整型变量a,b的值分别为6,2,那么a%b != 0的结果是( )。A)0 B)1 C)2 D)318、下列属于分支结构的是( )。A)while B)switch C)for D)以上
20、都不是19、设整型变量a,b的值分别为1,0,那么a | (+b)的结果是( )。A)0 B)1 C)2 D)都不对20、设整型变量a,b的值分别为1,0,那么a&(b+)的结果是( )。A)0 B)1 C)2 D)都不对二、判断题( )1、在分支结构switch中,case后面跟的一定是常量。 V ( )2、逻辑运算符优先级高于关系运算符的优先级。 X( )3、关系运算符中,= = 的优先级要高于 = 的优先级。 X( )4、关系运算符中, 的优先级要高于 = 的优先级。 X( )5、在条件表达式中,-3代表为真。 V( )6、在条件表达式中,非0代表为真。V( )7、条件运算符 ?: 是2
21、目运算符。 X ( )8、在switch语句中,有没有break的情况都是相同的。 X( )9、判断a,b两个数是否相等,用 a = b。 X( )10、判断a,b两个数是否相等,用 a = = b。 V 第六单元 for循环结构一、选择题1、对下边for循环,循环体体执行次数是( )。 for ( i = 1; i 1; i - )A) 6 B) 5C) 4D) 73、下边循环执行完后,a为( )。 for ( a= 1;a 5; a+ ) a = 2 * a;A) 5B) 4 C) 7 D) 84、下边循环执行完后,s为( )。 for ( a= 1; a 5; a+ ) for ( b=
22、 s = 0; b a; b+, s = s +a)A) 6B) 4C) 7D) 无答案5、下边程序执行完后,a ,b的值是( )。 for ( a= 1; a= 1; b- ) if ( a= b)) exit(0);A) 1,1 B) 5,5C) 6,6D) 均不对6、下边程序执行后s的值是( )。 for ( s = i = 1; i 100; i+ ) s = s + 1 / i;A) 0B) 2C) 1 D) 难以确定7、下边程序段输出结果是( )。int i , a= 0;for ( i = 0; i 10; i+ ) a+, i+;printf(%d, a);A)5 B)6 C)
23、9 D)10 8、以下for循环的次数为( )。 for(x = 0,y = 0; (y=123) & (x4) ; x+)A)不循环 B)无限次 C)3 D)49、从循环体内某一层跳出,继续执行循环外的语句是:( )。A) break语句 B)return语句 C)continue语句 D)空语句10、for(k=0;k5;+k)if(k= = 3) continue; printf(%d,k);的输出结果为( )。A)012 B)0124 C) 01234 D) 没有输出结果11、循环语句 for (x=0,y=0; (y!=123)| (x4);x+) ;的循环执行次数为( )。A)无限
24、次 B)不循环 C)4次 D)3次12、设i,j,k均为int型变量,k初值为0,执行完下面的for循环后,k的值为( )。for (i=0,j=10; i 3; j- )a+; if ( a 3) break ;A) 3 B、4 C、5 D)615、for循环中,表达式1的作用是( )。A)循环变量赋初值 B)循环条件 C)改变循环变量的值 D)什么作用都没有16、for循环中,表达式2的作用是( )。A)循环变量赋初值 B)循环条件 C)改变循环变量的值 D)什么作用都没有17、for循环中,表达式3的作用是( )。A)循环变量赋初值 B)循环条件 C)改变循环变量的值 D)什么作用都没有
25、18、for循环中,能省略的表达式有( )。A)表达式1 B)表达式2 C)表达式3 D)3个都可以19、下面程序中a+ 总共被执行多少次( )。 for(i=0;i3;i+)for(j=0;j3;j+)a+;A)3次 B)2次 C)6次 D)9次20、下面循环体被执行的次数是( )。 for(i=0;i-10; i-) ; D. for ( ; i0 ; ) ; 22、定义变量int i=2; 则以下是无限循环的是: ( )。A. for (i=0;i=1;i+) ; B. for (i=0; i10; i+) ; D. for ( ; i ; +i ) ; 23、以下for循环语句,循环体
26、的执行次数是: ( )。 for( i=1; i1; i- ) ;A. 4 B. 5 C. 3 D. 225、下面的循环体执行完后,a的值是: ( )。 for( a=2; a8; a+) a*=2 ;A. 10 B.9 C. 12 D. 11二、判断题( )1、continue语句只能用于循环语句中。 V( )2、在for循环中允许使用嵌套循环,但只能是嵌套while循环。X ( )3、break语句只能用于循环语句中。 X( )4、for循环可能一次都不执行。 V( )5、break语句是结束本层循环。 V( )6、break语句是结束本次循环。 X( )7、continue语句是结束本层
27、循环。 X( )8、continue语句是结束本次循环。 V( ) 9、在循环过程中,使用break语句和continue语句的作用是一样的。 X( )10、for( ; ; )这写书写for循环是合法的,即for三个表达式都是可以省略的。 V三、程序阅读1、以下程序运行完后的输出数据是:_aaaaaaaaa_main() int a=10 ; for( ; a ; ) a-; if(a=0) break; printf(a); 2、以下程序运行完后a的值是: _1_main() int i, a=0 ; for(i=0; i10; i+) i+; a+; printf(%d, a); 3、
28、以下程序运行完后a的值是: _5_main() int i, a=0 ; for(i=0; i10; i+) a+, i+; printf(%d, a); 4、以下程序运行完后的结果是:_#*#*_main() int k; for (k=1;k1;n-) s=s+1/n; printf(%6.1fn,s); 第七单元 while与do-while循环一、选择题1、break语句的正确的用法是( )。A)无论在任何情况下,都中断程序的执行,退出程序。B)在多重循环中,只能退出最靠近的那一层循环语句。C)跳出多重循环。D)只能修改控制变量。2、int i=0; while( i+ 5); 循环结
29、束后i的值是( )。A)6 B)7 C)5 D)83、语句while ( E ); 括号中的表达式E等价于( )。 A)E=0 B)E!=1 C)E!=0 D)E=14、 int i=1; while( -i ) ; 循环次数是( )。A)无限次 B)0 C)2 D)1 5、下述程序段的运行结果是 。int a=1,b=2, c=3, t;while ( abc ) t=a; a=b; b=t; c-;printf(“%d,%d,%d”,a,b,c);A)1,2,0 B)2,1,0 C)程序错误 D)2,1,16、 程序运行的结果是( )。 main() int x; x=3; do prin
30、tf(%d,x-); while(x); A)0 B)无限循环 C)3 D)27、do-while语句的循环体( )。A)可能一次都不执行 B)至少要执行一次 C)由循环条件决定循环次数 D)B C均正确8、对下面的while语句,循环体执行次数是( )次。a=30;while ( a-) ;A)30 B)31 C)39 D)都不对9、在C语言中,下列说法中正确的是( )。A)不能使用do while的循环。 B)do while的循环必须使用break语句退出循环。C)do while的循环中,当条件为0时将结束循环。D) do while的循环中,当条件为非0时将结束循环。10、下面的循环
31、执行完后,循环次数是( )次。while( k=10 )k-;A)9 B)10 C)11 D)无穷次二、判断题( )1、while 适合控制循环次数不确定的循环。(V)( )2、无论循环条件是否满足,do . while循环的循环体至少执行一次。(V)( )3、while( a ) ;是一个死循环。(V)( )4、在实际编程中,do-while循环完全可以用for循环替换。(V)( )5、continue;语句和break;语句有同样的作用。(X)第八单元 数组一、选择题1、下列描述中不正确的是( )。A) 字符型数组中可能存放字符串。B) 可以对字符型数组进行整体输入、输出。C) 字符串函数声明在包ctype.h中。D) 字符串的结束符是0。2、定义如下变量和数组: int i ; int x6 =1,2,3,4,5,6;则语句for(i=0;i3;i+) printf(%d ,x 5-i); 的输出结果是( )。A) 1 2 3 B)1 3 5 C)2 4 6 D)6 5 4 3、以下对二维数组a进行正确初始化的是( )。A) int a23=1,2,3,4,5,6;