C语言程序设计复习资料
一、选择题
下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。
1、不合法的整数是(B )。
A)0x35 B)43.6 C)0532 D)-346
2、下列合法的字符常量是(D )。
A)“f”B)x C)65 D)‘\Xab’
3、设有整型变量x,单精度变量y=5.5,表达式x=float(y*3+((int)y%4))执行后,x的值为(A )。
A)17B)17.500000 C)17.5 D)1.5
4、在C语言中,负整数在内存中以( A )形式释放。
A)补码B)BCD码C)反码D)十进制数
5、在C语言中,要求参加运算的数必须是整数的运算符是(C )。
A)/ B)!C)%D)= =
6、(D)是C语言中非法的数据类型关键字。
A)float B)singed C)integer D)Char
7、现已定义整形变量int i=1;执行循环语句while(i++<5);后i的值为(b)。
A)1 B)5 C)6 D)以上三个答案都不正确
8、下列语句的输出结果是(D )。
printf(“%f\n”,(float)(2+4)/2);
A)有语法错误不能通过编译B)3 C)3.0 D)3.000000
12、定义a为整型,下列表达式a=3>6的运行后,a的值为(A )。
A)0 B)1 C)3 D)表达式错误
13、如果a=1,b=2,c=3,d=4,则条件表达式a>b?a:c>d?c:d的值为(D )。
A)1 B)2 C)3 D)4
14、对于条件表达式(M)?(a++):(a--),其中的表达式M等价于(C )。
A)M= =0 B)M= =1 C)M!=0 D)M!=1
15、在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是(D )。
A)(2>x>-2)||(4>x>8) B)((x<=-2)||(x>=2)||((x>4)||(x>=8))
C)(x<2)&&(x>=-2)&&(x>4)&&(x<8) D)(x>-2)&&(x>4)||(x<8)&&(x<2)
16、已知字母a的ASC||的十进制代码为97,则执行下列语句后输出为(C )。
Char a=‘a’;
a--;
printf(“%d,%c\n”,a+‘2’-‘0’,a+‘3’-‘0’);
A)a,c B)a—运算不合法,故有语法错误C)98,c D)格式描述和输出项不匹配,输出无定值
18、C语言中,逻辑“真”等价于(C )。
A)大于零的数B)大于零的整数C)非零的数D)非零的整数
19、下列语句中,符合语法的语句式(D )。
A)a+b=3 B)a=7 C)a=c+b+3=6; D)a=8,b=a+7;
20、若x为float型变量,则以列程序段结果是(B )。
x=1234.6789;
printf(“%-2.1f”,x);
A)输出格式描述符的域宽度不够,不能输出B)输出为1234.7
C)输出为1234.6 D)输出为-1234.6
21、下面函数的功能是(A )。
Int funl(char*x)
{
char*y=x;
while(*y++);
return(y-x-1);
}
A)求字符串的长度B)比较两个字符串的大小C)将字符串x复制到字符串y
D)将字符串x连接到字符串y后面
22、指针变量a所指的字符串长度为(D )。
Char*a=”\n\”My Name is \”Zhang Li\”\n”;
A)26 B)27 C)28 D)23
23、若有以下说明和语句,则输出结果是(B )。
Char*sp=”\\\”\n”;
Printf(“%d”,strlen(sp));
A)6 B)3 C) 5 D)字符串中有非法自负,输出值不定
24、若有以下的说明语句,则对字符串中字符的不正确引用是(其中0<=i<6)( D ).
Char*strp=“string”;
A)*strp B)*(strp+i) C)strp[i] D)strp
25、函数调用:strcat(strcpy(str1,str2),str3)的功能是(C )。
A)将串str1复制到串str2中后再连接到串str3之后
B)将串str1连接到串str2之后再复制到串str3之后
C)将串str2复制到串str1中后再将串str3连接到串str1之后
D)将串str2连接到串str1之后再将串str1复制到串str3之后
26、若使用下述程序段将整数12和浮点数13.6分别赋给变量a和b,那么输入应该式(B )。
int a;
float b;
scanf(“a=%d,b=%f”,&a,&b);
A)12 13.6 B)a=12, b=13.6C)12, 13.6 D)a=12 b=13.6
27、对下面的程序说法正确的是(C )。
main()
{int x+3,y=0,z=0;
if(x=y+z)
printf(“****”);
else
printf(“####”);
}
A)有语法错误,不能通过编译B)输出为**** C)输出为# # # # D)通过编译,但是不能运行
28、下面程序的输出是(B )。
main()
{
int x=10,y=3;
printf(“%d\n”,y=x%y);
}
A)0 B)1 C)3 D)不确定的值
29、(D )是不正确的C语言赋值语句。
A)a=a+1; B)i++; C)a*=1,b=8; D)a=3
30、C语言程序的三种基本程序是(A )。
A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构
C)嵌套结构,递归结构,顺序结构D)循环结构,转移结构,顺序结构
33、以下程序段(B )。
int x=1,y=4;
printf(x A)输出控制格式错误B)输出:x=1 C)输出:y=1 D)输出:y=4 34、为了避免嵌套的条件语句if-else的二义性,C语言规定:else与(B )是正确的。 A)缩排位置相同的if B)其之前最近的if C)其之后if D)同一行上的if 35、下列关于switch语句和break语句的结论中,只有(B )是正确的。 A)break语句是switch语句的一部分 B)在switch语句中可以根据需要使用或不使用break语句 C)在switch语句中必须使用break语句 D)以上三个结论有两个是正确的 36、设I和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i++),下列哪句话正确( B )。 A)执行8次B)执行9次C)是无限循环D)循环体一次也不执行 40、char(*A)[5],则标识符A的意义时(B)。 A)A是一个指向有5个字符型元素的指针变量 B)A是一个有5个元素的一维数组,每个元素指向字符型的指针变量 C)A是一个指向字符型的函数的指针变量 D)A是一个有5个元素的一维数组,每个元素指向整型变量的指针变量 112、C语言程序的三种基本结构是(A) A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构 C)嵌套结构,递归结构,顺序结构D)循环结构,转移结构,顺序结构 1.下列合法的字符常量是(D )。 A.“f” B.x C.65 D.‘\Xab’ 2.下面那个是属于合法的标识符( C ) A.99 B.1_s C. ab D.@vb 3.在C语言中,要求参加运算的数必须是整数的运算符是(C )。 A. / B. ! C. % D. = = 4.现已定义整形变量int i=1;执行循环语句while(i++<5);后i的值为(B )。 A. 1 B. 5 C. 6 D. 以上三个答案都不正确 5.下列语句的输出结果是(D )。 printf(“%f\n”,(float)(2+4)/2); A. 有语法错误不能通过编译 B. 3 C. 3.0 D. 3.000000 6.设C语言中,int类型数据占2个字节,则long类型数据占(D )个字节。 A. 1 B. 2 C. 8 D. 4 7.现有表达式y=x<1?1:(x<10?2:3),如x=12,则y等于( C ) A.2 B.1 C. 3 D. 0 8.定义a为整型,下列表达式a=3>6的运行后,a的值为(A)。 A. 0 B. 1 C. 3 D. 表达式错误 9.表达式a=3,a+1,a*a的值是( B ) A.2 B.9 C. 16 D.4 10.下列语句中,符合语法的语句式(D)。 A. a+b=3 B. a=7 C. a=c+b+3=6; D. a=8,b=a+7; 在c中单精度数据类型的精度是几?( C ) A.8 B.6 C. 7 D. 5 5.在C语言中,用( B )表示逻辑值“真”。 A.1 B.非0的数 C. “a” D. ‘\101’ 6.表达式2.5+7%3*3(int)(2.5+4.7)%2/4的结果是(D) A.2.4 B.2.75 C. 3 D. 2.5 7.表达式!4||3&&2的结果是( A ) A.1 B.0 C.4 D. 2 8.现有表达式y=x<1?1:(x<10?2:3),如x=5,则y等于( A ) A.2 B.1 C. 3 D. 0 9.若变量已正确定义,语句“if(a>b) k=0;else k=1;”和其等价的是(D ) A.k=(a>b)?1:0 B.k=a>b; C. k=a<=b; D. a<=b?0:1; 10.设x=3,执行语句y=x++后,x、y分别等于( D ) A.3,3 B.1,2 C. 3,4 D. 4,3 11.表达式a=3,a=a+1,a*a的值是( C ) A.2 B.9 C. 16 D.4 12.函数调用:strcat(strcpy(str1,str2),str3)的功能是(C)。 A. 将串str1复制到串str2中后再连接到串str3之后 B.将串str1连接到串str2之后再复制到串str3之后 C.将串str2复制到串str1中后再将串str3连接到串str1之后 D.将串str2连接到串str1之后再将串str1复制到串str3之后 13.break语句的作用是( B ) A.结束本次循环 B.结束所有循环 C. 结束一条语句 D.结束整个程序14.下列程序的输出结果是( C )。 fun(int a, int b, int c) { c =a*b; } main( ) { int c=5; fun(2,3,c); printf(”%d\n”,c); } A.0 B.5 C.6 D.无法确定 二、填空。 三、5. 下述函数的功能是__将数组a的元素由小到大排序_____________________ . void func(int a[],int n) { int i,j;