1、 石油大学 C语言 在线考试附答案 精品资料 《C语言》综合复习资料 一、单选题 1. C语言中基本数据类型有 ( ) A)整型、实型、逻辑型 B)整型、字符型、逻辑型 C)整型、实型、字符型 D)整型、实型、字符型、逻辑型 2. 在C语言中,数字029是一个( ) A)八进制数 B)十进制数 C)十六进制数 D)非法数 3. 在以下关于C语言的不严格的叙述中,错误的说法是( ) A)在标识符中,大写字母和小些字母的意义相同 B)有些不同类型的变量可以在一个表达式中运算 C)在赋值表达式中等号“=
2、左边的变量和右边的值可以是不同类型 D)同一个运算符号在不同的场合可以有不同的含义 4. 已知 int a=4,b=5; ,这执行表达式 a=a>b 后,变量a的值为( ) A) 0 B)1 C) 4 D) 5 5. 设有定义 int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是( ) A) a&&b B) a<=b C) a||b+c&&b-c D) !((a
3、x; C)x=y=15; D)y=int(x); 7. 已定义c为字符型变量,则下列语句中正确的是( ) A)c='97'; B)c="97"; C)c="a"; D)c=97; 8. 能将高级语言编写的源程序转换为目标程序的软件是( ) A)汇编程序 B)编辑程序 C)解释程序 D)编译程序 9. 设有定义 char *p=“abcde\0fghjik\0”; 则printf(“%d\n”,strlen(p));输出结果是( ) A) 12 B) 15 C) 6 D) 5
4、10.以下选项中合法的实型常数是( ) A) 5E2.0 B) E-3 C) .2E0 D) 1.3E 11.以下非法的赋值语句是( ) A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0; 12.已定义c为字符型变量,则下列正确的赋值语句是( ) A)c='66'; B)c="66"; C)c="B"; D)c=66; 13.设a=3,b=4,c=-5,则逻辑表达式:a || b+c&& b==c 的值是( ) A)1
5、 B)0 C)非0 D)语法错 14.以下能正确定义数组并正确赋初值的语句是( ) A)int N=5,b[N][N]; B)int a[1][2]={{1},{3}}; C)int c[2][]= {{1,2},{3,4}}; D)int d[3][2]={{1,2},{34}}; 15.结构化程序设计的三种基本结构是( ) A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)
6、if、for、continue 16.在一个C程序中( ) A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 17.以下合法的字符常量是( ) A)‘\084’ B)‘ab’ C)‘\x43’ D)“\0” 18.用8位无符号二进制数能表示的最大十进制数为( ) A)127 B)128 C)255 D)256 19.设有定义:int x=0,y=1,z=1;则运行表
7、达式:x=y++>z--后,x,y,z的值分别是( ) A) 1,1,1 B) 1,2,0 C) 0,1,1 D) 0,2,0 20.设有int x=11;则表达式(x++*1/3)的值是( ) A) 3 B)4 C) 11 D) 12 21.若有: int x=1,n=5; 则执行语句x%=(n%2)后,x的值为( ) A) 3 B)2 C) 1 D) 0 22.结构化程序的3种基本控制结构是( ) A) if-else结构、while结构、for结构 B) 顺序结构、分支机
8、构、循环结构 C) while结构、do-while结构、for结构 D) 以上三种都不对 23.下面程序段的输出结果是( ) int k=11; printf(“%d,%o,%x”,k,k,k); A)11,12,11 B)11,13,13 C)11,013,0xb D)11,13,b 24.在微型计算机系统中,存储一个汉字的国标码所需要的字节数是( ) A) 1 B) 2 C) 3 D) 4 25.以下非法的赋值语句是( ) A) n=(i=2,++i); B) j++
9、 C) ++(i+1); D) x=j>0; 26.语句:printf("%d",(a=2)&&(b=-2)); 的输出结果是( ) A)无输出 B)结果不确定 C) 1 D) 2 27.设有定义语句:charstr[][20]={"Hello","Beijing"},*p=str; ( ) 则printf("%d\n",strlen(p+20)); 输出结果是 A)0 B)5 C)7 D)20 28.以下选项中,与k=++n完全等价的表达式是( ) A) k=n,n=n+1
10、 B) n=n+1,k=n C) k=++n D) k+=n+1
二、读程序,写出程序执行结果
1. #include
11、include “stdio.h”
void main()
{ char n=‘c’;
switch(n++)
{ default: printf(“error!”); break;
case ‘a’: case ‘A’:
case ‘b’: case ‘B’: printf(“good!”);break;
case ‘c’: case ‘C’: printf(“pass!”);
case ‘d’: case ‘D’: printf(“warm!”);
}
}
4. #include
12、for( ; n 13、io.h>
voidcopy_str(char from[ ],char to[ ])
{ int k=0;
while(from[k]!=‘\0’)
{ to[k]=from[k]; k++; }
to[k]=‘\0’; /*末尾加上串结束标志*/
}
void main()
{ char str1[80]=”red”,str2[80]=”green”;
copy_str (str1,str2);
puts(str2);
}
7. #include 14、un(int p)
{ int d=5;
d+=p++;
printf(“%d”,d);
}
void main()
{ int a=3;
fun(a); d+=a++;
printf("%d\n", d);
}
8. #include 15、0; i<3; i++)
switch (i)
{ case 1: printf("%d ", i);
case 2: printf("%d ", i);
default :printf("%d ", i);
}
}
10. #include 16、int a=123;
printf("%d是%d位数\n",a,ws(a));
}
11. #include 17、1;
printf("%d ",n[i]);
}
for(i=0;i<5;i++)
printf("%d ",n[i]);
}
13.#include 18、
colum=j;
}
printf("max=%d,row=%d,colum=%d",max,row,colum);
}
14.#include 19、y_str(str1,str2);
puts(str2);
}
15. #include 20、1
void main()
{ int i=6,j=8;
printf(“%d\n”,MAX(i,j));
}
18.#include 21、 }
printf("%d %d %d\n",m,n,k);
}
19. #include 22、n[i]);
}
for(i=0;i<5;i++)
{ printf("%d ",n[i]);
}
}
21. #include 23、d,%d\n”, ++n , n+=2 , --n) ;
}
23. #include 24、a==b) t=5;
else t=2*s;
printf("t=%d ", t);
}
25. #include 25、11;
a+=i;
}
printf("%d\n",a);
}
27. #include 26、)
{ int x=3, y=8, z=6, r;
r=fun(fun(x,y), 2*z);
printf("%d\n", r);
}
三、编程题
1. 设有分段函数:
x (x<1)
Y= 2x-1 (1≤x<10) 写一程序,输入 x,输出 y 的值。
3x-11 (x≥10)
2.编程任意输入两个实数a和b,计算下面函数的值,并输出y值。
a-b a>b
y= a 27、4.写一个判断素数的函数。要求在主函数中输入一个整数并输出相应的判断信息。
5.编程序计算 s=1!-2!+3!-4!+ …… -10!,并输出结果。
6.编写一个函数,将一个字符串(最多80个字符)中的大写字母变为小写字母,小写字母变为大写字母。要求字符串的输入与输出在主函数中完成。
7.编程计算:s=1+12+123+1234+12345+123456 (必须用循环控制语句实现)
8.编写函数change使输入的字符串按反序存放,在主函数中输入和输出字符串。
例如输入是:12345abcde,则输出为:edcba54321
9.编程,在N×N矩阵中(即N行N列的数组),求主对角 28、线和次对角线上的各元素之和。
10.10个评委给出某选手打分,编程实现去掉一个最高分和一个最低分,求最后得分(平均分)
《C语言》综合复习资料参考答案
一、 单选题
题号
1
2
3
4
5
6
7
8
9
10
答案
C
D
A
A
D
D
D
D
D
C
题号
11
12
13
14
15
16
17
18
19
20
答案
C
D
A
C
A
B
C
C
D
A
题号
21
22
23
24
25
26
27
28
29、
答案
D
B
C
B
C
C
C
B
二、读程序写出程序执行结果题
1、13,3
2、14
3、pass!warm!
4、3,3
5、18
6、red
7、84
8、
*
**
9、011122
10、123是3位数
11、
abc
defg
abcdefg
12、6565345
13、max=10,row=1,colum=2
14、good
15、16
16、5
17、9
18、4 3 1
19、<><>#
20、6565345
21、2
22、4,3,1
23、a=2,b=1
24、t=2
25 30、area=18
26、32
27、29
28、12
三、编程题
1. 设有分段函数:
x (x<1)
Y= 2x-1 (1≤x<10) 写一程序,输入 x,输出 y 的值。
3x-11 (x≥10)
#include 31、x-1;
printf(“x=%3d,y=2*x-1=%d\n”,x,y);
}
else
{y=3*x-11;
printf(“x=%3d,y=3*x-11=%d\n”,x,y);
}
}
2.编程任意输入两个实数a和b,计算下面函数的值,并输出y值。
a-b a>b
y= a
void main()
{
floata,b,y;
scanf(“%f,%f”,&a,&b);
if(a 32、a==b)y=a*b;
else y=a-b;
printf(“y=%f\n”,y);
}
3.编程序求如下分段函数的值
#include 33、息。
#include 34、…… -10!,并输出结果。
#include 35、
gets(a);
puts(a);
for(i=0;i<80;i++)
if(a[i]>=65&&a[i]<=90)
a[i]=a[i]+32;
puts(a);
}
7.编程计算:s=1+12+123+1234+12345+123456 (必须用循环控制语句实现)
#include 36、序存放,在主函数中输入和输出字符串。例如输入
是:12345abcde,则输出为:edcba54321
void main()
{
char a[100];
gets(a);
change(a);
puts(a);
}
#include 37、 a[j]=temp;
}
}
9.编程,在N×N矩阵中(即N行N列的数组),求主对角线和次对角线上的各元素之和。
#define N 10;
main()
{
inti,j;
int a[N][N];
int sum=0;
for(i=0;i 38、"%d",sum);
}
10.10个评委给出某选手打分,编程实现去掉一个最高分和一个最低分,求最后得分(平均分)
#include






