C)a>10&&a<15 D)!(a<=10)&&!(a>=15)
32、表达式“10!=9”的值是( )。
A)true B)非零值 C)0 D)1
33、设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=B
34、设有单精度变量f,其值为。执行语句“n=( (int)f )%3;”后,n的值是( )。
A)4 B)1 C)D)
35、普通整形int能够处理的数据范围是( )
A)-32767~32767 B)-32768~32768
C)-32767~32768 D)-32768~32767
36、若定义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)4
38、若有代数式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*3
39、设有变量说明:float x = , y = ,下面使x为的表达式是( )
A)x -= y* B)x /= y+9 C)x *= y-6 D)x += y+2
40、以下能正确定义整型变量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)1 B)2 C)4 D)8
42、以下哪个数学函数的作用是求某数的平方根()。
A)sqrt() B)fabs() C)pow() D)exp()
43、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是()。
int x;
scanf("%d",&x);
if(++x>5) printf("%d",x);
else printf("%d\n",x --);
A) 7和5 B) 6和3 C) 7和4 D)6和4
44、执行语句"x=(a=3,b=a--)"后,x,a,b的值依次为()。
A)3, 3, 2 B)3,2,2 C)3,2,3 D)2,3,2
45、读出以下语句的输出结果是( )。
int x=10,y=10;
printf("%d %d\n",x--,--y);
A) 10 10 B)9 9 C)9 10 D) 10 9
46、C语言中,合法的字符串型常数是( )。
A)‘A’B)"A" C)‘abcd’ D) abcd
47、为表示关系x≥y≥z,应使用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) B) C)11 D)12
50、若已定义x和y为double类型,则表达式x = 1,y = x+3/2的值是()
A)1 B)2 C) D)
二、判断题
()1、“A”是一个字符常量。 X
()2.、在程序运行过程中其值可以改变的量称为变量。 V
()3、在C语言中,变量可以先使用再定义。 X
()4、在C语言中,所有算术运算符的优先级都相同。 X
()5、程序中若要使用数学函数就必须包含头文件””。 V
()6、程序中若要使用printf()函数就必须引用头文件””。 V
()7、在标准C中,“=”是判断两个数是否相等。 X
()8、在标准C中,使用所有输入输出函数必须包含“”文件。 X
()9、在C语言中输出数据时可以指定数据的精度,即小数点后保留几位。 V
( )10、C语言中的基本数据类型有字符型、整型和浮点型。 V
( )11、所有的C语言程序都必须有一个名为main的主函数。 V
( )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、下列标识符中合法的标识符是()
A) int2 B) if C) 2two D) a#b
2、选出下列标识符中不是合法的标识符的是()
A) hot_do B) cat@113 C) INT D) _2ab
3.、以下选项中属于C语言的数据类型是()
A) 字符串型 B) 双精度型 C) 逻辑型 D) 布尔型
4、设有如下定义: int x=10,y=3, z;
则语句printf("%d\n", z = x%y ); 的输出结果是()
A) 3 B) 0 C) 4 D) 1
5、设整型变量n的值为2,执行语句"n += n;"后,n的值是( )
A) 0 B) 4 C) - 4 D) 2
二、判断题
()1、结构化程序设计的三种结构是顺序结构、选择结构和循环结构。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)0
2、表达式:10!=9的值是()。
A) true B)非零值C) 0 D) 1
3、设int x=1,y=1;表达式(!x++ || y--)的值是_()。
A)0 B) 1 C) 2 D)-1
4、设整型变量s, c1,c2的值均为2,则执行语句(s=(c1= =c2))后,s
的值为:()。
A)0 B)1 C)2 D)3
5、设整型变量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 || (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,那么表达式 a>ba+b:a-b的结果是()。
A)1 B)2 C)3 D)-1
11、下边程序段
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、设整型变量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)x>0
16、下列表达式的值中哪个表示为逻辑假()。
A)1 B)3 C)0 D)-1
17、设整型变量a,b的值分别为6,2,那么a%b != 0的结果是()。
A)0 B)1 C)2 D)3
18、下列属于分支结构的是()。
A)while B)switch C)for D)以上都不是
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目运算符。 X
()8、在switch语句中,有没有break的情况都是相同的。 X ()9、判断a,b两个数是否相等,用 a = b。 X ()10、判断a,b两个数是否相等,用 a = = b。 V
第六单元 for循环结构
一、选择题
1、对下边for循环,循环体体执行次数是()。
for ( i = 1; i <= 10; i = i + 2 )
;
A) 6 B) 5 C) 4 D) 7
2、对下边for循环,循环体执行次数是()。
for ( i = 5; i > 1; i -- )
;
A) 6 B) 5 C) 4 D) 7
3、下边循环执行完后,a为()。
for ( a= 1;a< 5; a++ )
a = 2 * a;
A) 5 B) 4 C) 7 D) 8
4、下边循环执行完后,s为()。
for ( a= 1; a< 5; a++ )
for ( b= s = 0; b< a; b++, s = s +a)
;
A) 6 B) 4 C) 7 D)无答案
5、下边程序执行完后,a ,b的值是()。
for ( a= 1; a<= 10; a++ )
for ( b= 10;b>= 1; b-- )
if ( a>= b)) exit(0);
A) 1,1 B) 5,5 C) 6,6 D)均不对6、下边程序执行后s的值是()。
for ( s = i = 1; i < 100; i++ ) s = s + 1 / i; A) 0 B) 2 C) 1 D)难以确定
7、下边程序段输出结果是()。
int i , a= 0;
for ( i = 0; i < 10; i++ )
a++, i++;
printf("%d", a);
A)5 B)6 C)9 D)10
8、以下for循环的次数为()。
for(x = 0,y = 0; (y=123) && (x<4) ; x++)
;
A)不循环 B)无限次 C)3 D)4
9、从循环体内某一层跳出,继续执行循环外的语句是:()。
A) break语句 B)return语句 C)continue语句 D)空语句
10、for(k=0;k<5;++k)
{
if(k= = 3) continue;
printf("%d",k);
}
的输出结果为()。
A)012 B)0124 C)01234 D)没有输出结果
11、循环语句 for (x=0,y=0; (y!=123)|| (x<4);x++) ;的循环执行次数为()。
A)无限次 B)不循环 C)4次 D)3次
12、设i,j,k均为int型变量,k初值为0,执行完下面的for循环后,k 的值为()。
for (i=0,j=10; i<=j; i++,j--) k=i+j;
A)10 B)9 C)8 D)7
13、以下程序段的循环次数是()。
for (i=2 ; i=0 ; )
printf(“%d” , i--) ;
A)无限次 B)0次 C)1次 D)2次
14、下边程序段循环执行的次数是()。
int a= 0, j = 10;
for ( ; j > 3; j-- )
{
a++;
if ( a> 3) break ;
}
A) 3 B、4 C、5 D)6
15、for循环中,表达式1的作用是()。
A)循环变量赋初值 B)循环条件
C)改变循环变量的值 D)什么作用都没有
16、for循环中,表达式2的作用是()。
A)循环变量赋初值 B)循环条件
C)改变循环变量的值 D)什么作用都没有
17、for循环中,表达式3的作用是()。
A)循环变量赋初值 B)循环条件
C)改变循环变量的值 D)什么作用都没有
18、for循环中,能省略的表达式有()。
A)表达式1 B)表达式2 C)表达式3 D)3个都可以19、下面程序中a++ 总共被执行多少次()。
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a++;
A)3次 B)2次 C)6次 D)9次
20、下面循环体被执行的次数是()。
for(i=0;i<3;i++)
;
A)0次 B)1次 C)2次 D)3次
21、定义变量int i=-1; 则以下不是无限循环的是: ( )。
A. for (i=0; i=1; i++) ;
B. for ( i=0; ; i--) ;
C. for ( ; i>-10; i--) ;
D. for ( ; i<0 ; ) ;
22、定义变量int i=2; 则以下是无限循环的是: ( )。
A. for (i=0;i==1;i++) ;
B. for (i=0; i<0 ; ) --i;
C. for ( ; i>10; i++) ;
D. for ( ; i ; ++i ) ;
23、以下for循环语句,循环体的执行次数是: ( )。
for( i=1; i<=5; i+=2 ) ;
A. 4
B. 5
C. 6
D. 7
24、以下for循环语句,循环体的执行次数是: ( )。
for( i=5; i>1; i-- ) ;
A. 4
B. 5
C. 3
D. 2
25、下面的循环体执行完后,a的值是: ( )。
for( a=2; a<8; 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语句是结束本层循环。 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; i<10; i++)
i++; a++;
printf("%d", a);
}
3、以下程序运行完后a的值是: __5__ main()
{
int i, a=0 ;
for(i=0; i<10; i++)
a++, i++;
printf("%d", a);
}
4、以下程序运行完后的结果是:_#*#*_ main()
{
int k;
for (k=1;k<5;k++)
{
if(k%2!=0)
printf("#");
else
printf("*") ;
}
}
5、以下程序运行完后s的值是:
main()
{
int n ;
float s=;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.1f\n",s);
}
第七单元 while与do-while循环
一、选择题
1、break语句的正确的用法是( )。
A)无论在任何情况下,都中断程序的执行,退出程序。
B)在多重循环中,只能退出最靠近的那一层循环语句。
C)跳出多重循环。
D)只能修改控制变量。
2、int i=0; while( i++ < 5); 循环结束后i的值是( )。
A)6 B)7 C)5 D)8
3、语句while ( E ); 括号中的表达式E等价于( )。
A)E==0 B)E!=1 C)E!=0 D)E==1
4、 int i=1; while( --i ) ; 循环次数是( )。
A)无限次 B)0 C)2 D)1
5、下述程序段的运行结果是。
int a=1,b=2, c=3, t;
while ( a
{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,1
6、程序运行的结果是( )。
main()
{
int x;
x=3;
do
{
printf("%d",x--);
}while(x);
}
A)0 B)无限循环 C)3 D)2
7、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、下面的循环执行完后,循环次数是()次。
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)字符串函数声明在包中。
D)字符串的结束符是’\0’。
2、定义如下变量和数组: int i ; int x[6] ={1,2,3,4,5,6};
则语句for(i=0;i<3;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 a[2][3]={{1,2},{3,4},{5,6}}; B)int a[ ][3]={1,2,3,4,5,6};
C)int a[2][ ]={1,2,3,4,5,6}; D)int a[2][ ]={{1,2},{3,4}};
4、下列程序的输出结果是()。
char a[]="abcd", b[]="ABCD", str[50]="xyz";
strcpy( str , strcat( a, b ) );
printf( "%s", str );
A)xyabcAB B)abcABz C)ABabcz D)abcdABCD