4.3.2习题参考答案
一.选择题
1.C语言中while和do-while循环的主要区别是。
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
2.下列叙述中正确的是
A.break 语句只能用于 switch 语句体中
B.continue语句的作用是使程序的执行流程跳出包含它的所有循环
C.break 语句只能用在循环体内和 switch 语句体内
D.在循环体内使用 break语句和 continue 语句的作用相同
3.下列叙述中正确的是
A.do-while语句构成的循环不能用其它语句构成的循环来代替。
B.do-while语句构成的循环只能用break语句退出。
C.用do-while语句构成的循环,在while后的表达式为非零时结束循环。D.用do-while语句构成的循环,在while后的表达式为零时结束循环。
4.执行x=-1; do { x=x*x; } while (!x); 循环时,下列说法正确的是
A.循环体将执行一次 B.循环体将执行两次
C.循环体将执行无限次 D.系统将提示有语法错误
5.假设变量s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0),则与以下程序段s=a; for(b=1;b<=c;b++) s=s+1; 功能等价的赋值语句是 B 。A.s=a+b; B.s=a+c; C.s=s+c; D.s=b+c;
6.以下程序段的输出结果是。
第30/106页
int main(void)
{
int num = 0,s = 0;
while(num <= 2){
num++; s += num;
}
printf("%d\n",s);
return 0;
}
A.10 B.6 C.3 D.1
7.运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为。
int main(void)
{
int m, n;
printf("Enter m,n;");
scanf("%d%d", &m,&n):
while (m!=n)
{ while (m>n) m=m-n;
while (n>m) n=n-m;
}
printf("m=%d\n",m);
return 0;
}
A.m=3 B.m=2 C.m=1 D.m=0
8.下列程序段的输出结果是。
int main(viod)
{
for(int i=1;i<6;i++) {
if( i%2 != 0) {
printf("#");
continue;
}
printf("*");
}
printf("\n");
return 0;
}
A.#*#*# B.##### C.***** D.*#*#*
二.填空题
1.若s=0,执行循环语句"for(i=1; i<=10; i=i+3) s=s+i; "后,i的值为2.下列程序段的输出结果是。
int x=2;
do {
第31/106页printf(“*”); x--;
} while(!x==0);
3.下列程序段的功能是计算:s=1+12+123+1234+12345。则划线处应填
int t=0,s=0,i;
for(i=1;i<=5;i++) {
t=i+ printf("s=%d\n",s);
4.以下程序的输出结果是。
int main(void)
{
}
5.阅读下列程序并回答问题。
main()
{ int i, j, k=0, m=0;
for(i=0; i<2; i++)
{
; /* 第6行*/
for(j=0; j<3; j++)
k++;
m++; /* 第9行*/
}
printf("k=%d, m=%d\n", k, m); }
(1)程序的输出是
(2)将第9行改为 " m=m+k; ",程序的输出是。
(3) 将第6行改为"k=0; " ,将第9行改为 " m=m+k; " ,程序的输出是。6.输入 happy$$new$$year!<回车>,则下列程序的运行结果是
int main(void)
{
int i,word=0; char c; while((c=getchar())!='\n') { if (c=='$') word=0; else if(word==0)
if (c>='a'&&c<='z') { c=c-'a'+'A'; word=1; word=0;
} } int num=0; while(num<6) { num++; if(num==3) break; printf("%d,",n um); } return 0; else putchar(c);
return 0;
第32/106页}
三.程序设计题
1.输入一批正整数(以零或负数为结束标志),求其中的偶数和。
解答:
#include
int main(void)
{
int x, sum;
printf("Input integers: ");
scanf("%d", &x);
sum = 0;
while(x>0){
if(x%2==0) sum = sum + x;
scanf("%d", &x);
}
printf("The sum of the even numbers is %d\n", sum);
return 0;
}
2.输入1个实数 x,计算并输出下式的值,直到最后一项的绝对值小于10-5(保留2位小数)。要求定义和调用函数fact(n)计算n的阶乘,可以调用pow()函数求幂。
x2x3x4
s=x++++Λ 2!3!4!
解答:
#include
#include
int main(void)
{
int i;
double item, s, x;
double fact(int n);
scanf("%le", &x);
s = 0;
item = x;
i = 1;
while(fabs(item) >= 0.00001){
item = pow(x,i)/fact(i);
s = s+ item;
i++;
}
printf("s=%.2f\n", s);
return 0;
第33/106页}
double fact(int n)
{
int i;
double result=1;
for(i=1;i<=n;i++)
result=result*i;
return result;
}
3.输入一个整数,求它的各位数字之和及位数。例如234的各位数字之和是9,位数是3。解答:
#include
int main(void)
{
int count, sum;
long in;
printf("Input an integer: ");
scanf("%ld", &in);
if(in<0) in=-in;
count=0;
sum=0;
while(in!=0){
sum = sum + in%10;
in=in/10;
count++;
}
printf("count = %d, sum = %d\n", count, sum);
return 0;
}
4.输入一个正整数n,输出2/1+3/2+5/3+8/5 +…的前n项之和,保留2位小数。(该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)
解答:
#include
int main(void)
{
int i,n,a,b,t;
float s;
printf("Input n: ");
scanf("%d", &n);
a=2;b=1;s=0;
for(i=1;i<=n;i++){
s=s+a*1.0/b;
t=a;
a=a+b;
b=t;
}
printf("s = %.2f\n",s);
return 0;
}
5.输入2个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。例如,输入2和3,输出246(2 + 22 + 222)。
解答:
#include
int main(void)
{
int i, n;
long int a, sn, tn;
printf("Input a,n: ");
scanf("%ld%d", &a, &n);
sn=0; tn=0;
for(i=1; i<=n; i++){
tn=tn+a;
sn=sn+tn;
a=a*10;
}
printf("s = %ld\n",sn);
return 0;
}
6.用一张一元票换1分、2分和5分的硬币(至少各一枚),问有哪几种换法?各几枚? 解答:
#include
int main(void)
{
int count, fen1, fen2, fen5;
count = 0;
for (fen5 = 19; fen5>0; fen5--)
for (fen2 = 49; fen2 >0; fen2--){
fen1 = 100-5*fen5-2*fen2;
if(fen1 > 0) {
count++;
printf("fen5:%d,fen2:%d,fen1:%d\n",fen5,fen2,fen1);
}
}
printf("count=%d\n", count);
第35/106页return 0;
}
7.求1~10000之间所有满足各位数字的立方和等于它本身的数。例如153的各位数字的立方和是13+53+33=153。
解答:
#include
int main(void)
{
int i, digit, number, sum;
for (i=1; i<=10000; i++){
number = i;
sum = 0;
while(number!=0){
digit = number%10;
number = number/10;
sum = sum + digit*digit*digit;
}
if(sum==i) printf("%d\n", i);
}
return 0;
}
8.验证哥德巴赫猜想:任何一个大于等于6的偶数均可表示为两个素数之和。例如6=3+3,8=3+5,…,18=5+13。要求将6~100之间的偶数都表示成两个素数之和,打印时一行打印5组。
解答:
#include
int prime(int n);
int main(void)
{
int i,m;
int count=0;
for (m=6;m<=100;m=m+2){
for (i=3;i<=m/2;i=i+2)
if (prime(i)&&prime(m-i)){
printf("%d=%d+%d ",m,i,m-i);
count++;
if(count%5==0) printf("\n");
}
}
return 0;
}
int prime(int n)
第36/106页{
int i,flag=1;
if(n==1) flag=0;
for(i=2;i<=n/2;i++)
if(n%i==0) flag=0;
return flag;
}
9.输入一个长整数,从高位开始逐位分割并输出。例如输入123456,逐位输出:1,2,3,4,5,6。
解答:
#include
int main(void)
{
int digit;
long in, temp, pow;
scanf("%ld", &in);
if(in<0) in=-in;
temp = in;
pow = 1;
while(temp>10){
pow *= 10;
temp /= 10;
}
while(pow >= 1 ){
digit = in/pow;
in = in % pow;
pow /= 10;
printf("%-2d", digit);
}
printf("\n");
return 0;
}
10.将一个正整数分解质因数。例如,输入90,输出90=2*3*3*5。
解答:
#include
int prime(int n);
int main(void)
{
int m, i;
scanf("%d",&m);
printf("%d=",m);
for (i=2; i!=m; i++){
第37/106页if(prime(i)) {
if(m%i==0){
printf("%d*",i);
m=m/i;
i--;
}
}
else
continue;
}
printf("%d",i);
printf("\n");
return 0;
}
int prime(int n)
{
int i;
int flag=1;
if(n==1) flag=0;
for(i=2;i<=n/2;i++)
if(n%i==0) flag=0;
return flag;
}
11.输入两个正整数m和n,求其最大公约数和最小公倍数。
解答:
#include
int main(void)
{
int m, n, j, k;
do{
scanf("%d", &m);
scanf("%d", &n);
}while(m<0||n<0);
j = m;
while(j % n != 0)
j = j + m;
k = (m * n) / j;
printf("最小公倍数是%d,最大公约数是%d\n", j, k);
return 0;
}
12.一球从100米高度自由落下,每次落地后反跳回原高度的一半,然后再落下再反弹。求它在第10次落地时,共经过多少米?第10次反弹多高?
第38/106页解答:
#include
int main(void)
{
int i;
double distance, height;
distance = 100;
height=100;
for(i = 1; i <= 10; i++){
height = height*0.5;
distance = distance +2*height;
}
printf("distance=%.1f,height=%.1f\n", distance, height); return 0; }
13.打印出以下图案:
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
解答:
#include
int main(void)
{
int i, j;
for (i=1; i<=4; i++){
for(j=2*(4-i);j>0;j--)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("* ");
printf("\n");
}
for (i=1; i<=3; i++){
for(j=1;j<=2*i;j++)
printf(" ");
for(j=1;j<=2*(4-i)-1;j++)
printf("* ");
printf("\n");
}
return 0;
}
14.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少桃子?(提示:采取逆向思维的方法,从后往前推断。)解答:
#include
int main(void)
{
int i, peach;
peach = 1;
for(i = 1; i < 10; i++){
peach = 2 * peach + 1;
}
printf("%d\n", peach);
4.4实验指导教材参考答案
4.4.1基本循环语句的使用
一、调试示例:略
二、改错题
改正下列程序中的错误,输入1个正实数eps,计算并输出下式的值,精确到最后一项的绝对值小于eps(保留6位小数)。请使用do…wh ile语句实现循环。(源程序error04_2.cpp)
11111s=1-+-+-+ (47101316)
输入输出示例 Input eps: 1E-4 s = 0.835699
源程序(有错误的程序)
行号源程序
1 #include
2 int main(void)
3 {
4 int flag,n;
5 double eps,item,s;
6
7 printf("Input eps: ");
8 scanf("%lf",&eps);
9 flag = 1;
第40/106页
5.3练习与习题参考答案
5.3.1练习参考答案
5-1输入一个正整数n,输出1~n之和。要求自定义函数求1~n之和,写出函数定义和调用函数。若要计算m~n(m 解答: #include int main(void) { int n; int sum(int n); scanf("%d", &n); printf("sum = %d\n", sum(n)); return 0; int sum(int n) { int result, i; result = 0; for(i = 1; i <= n; i++) result = result + i; return result; } 若要计算m~n(m scanf("%d%d", &m, &n); printf("sum = %d\n", sum(m, n)); 同时在函数定义时需设置2个行参: int sum(int m, int n) { int result, i; 第41/106页result = 0; for(i = m; i <= n; i++) result = result + i; return result; } 5-2输入2个数,输出其中较大的数。要求定义和调用函数max(a, b)找出并返回a、b中较大的数。 解答: #include int main(void) { int a, b, maximum; int max(int a, int b); scanf("%d%d",&a, &b); maximum = max(a, b); printf("max(%d,%d) = %d\n", a, b, maximum); return 0; } int max(int a, int b) { if(a > b) return a; else return b; } 5-3 输入一个正整数n,输出n行数字金字塔。 解答: #include int main(void) { int n; void pyramid(int n); scanf("%d", &n); pyramid(n); return 0; } void pyramid(int n) { int i, j; for(i = 1; i <= n; i++){ for(j = 1; j <= n - i; j++) printf(" "); 第42/106页for(j = 1; j <= i; j++) printf("%d ", i); putchar('\n'); } } 5-4思考:若把例5-9中静态变量f定义成普通局部变量,还能实现计算n!吗?请上机检验。若把f换成全局变量又会如何? 解答: 若把例5-9中静态变量f定义成普通局部变量,无法实现计算n!,因为函数返回后f单元被系统回收,不再保存原有数据。 若把f换成全局变量,则能实现计算n!,因为f的作用范围和生命周期一直存在。 5.3.2习题参考答案 一、选择题 1.在C语言程序中,若对函数类型未加显式说明,则函数的隐含类型为 D 。A.void B.double C.char D.int 2.下列程序的输出结果是 D 。 fun(int a, int b, int c) { c = a * b; } int main(void) { int c; fun(2, 3, c); printf(”%d\n”, c); return 0; } A.0 B.1 C.6 D.无法确定 3.建立自定义函数的目的之一是 B 。 A.提高程序的执行效率 B.提高程序的可读性 C.减少程序的篇幅 D.减少程序文件所占内存 4.以下正确的函数定义形式是 A 。 A.double fun(int x, int y) B.double fun(int x ; int y) C.double fun(int x, int y); D.double fun(int x, y) 5.以下不正确的说法是 C 。 A.实参可以是常量、变量或表达式 B.实参可以是任何类型 C.形参可以是常量、变量或表达式 D.形参应与对应的实参类型一致 6.以下正确的说法是 B 。 A.实参与其对应的形参共同占用一个存储单元 B.实参与其对应的形参各占用独立的存储单元 C.只有当实参与其对应的形参同名时才占用一个共同的存储单元 D.形参是虚拟的,不占用内存单元 二、填空题 第43/106页1.下列程序的输出结果为 2 3 5 7 。 #include int fun3(int m); int main(void) { int n; for (n = 1; n < 10; n++) if (fun3(n) == 1) printf("%d ", n); return 0; } int fun3(int m) { int i; if (m == 2 || m == 3) return 1; if (m < 2 || m % 2 == 0) return 0; for (i = 3; i < m; i = i + 2) if (m % i == 0) return 0; return 1; } 2.输入若干个正整数,判断每个数从高位到低位各位数字是否按值从小到大排列,请根据题意,将程序补充完整。 #include int main(void) { int n; scanf("%d", &n); while (n > 0) { if(fun1(n)) printf("%d中各位数字按从小到大排列\n", n); scanf("%d", &n); } } { int k; while(m) if( m / 10 % 10 > k) return 0; return 1; } 3.下列函数输出一行字符:先输出kb个空格,再输出n个指定字符(由实参指定)。请根据题意,将程序补充完整。 #include ) printf(“%c”, zf); } 三、程序设计题 1.输入x,计算并输出下列分段函数 f(x) 的值。要求定义和调用函数sign(x)实现该分段函数。 x > 0 x = 0 -1 x < 0 解答: #include int main(void) { int sign(int x); int x, y; scanf("%d",&x); y = sign(x); printf("sign(%d) = %d\n", x, y); return 0; } int sign(int x) { int y; if(x>0) y=1; else if (x==0) y=0; else y=-1; return y; } 2.输入一批正整数(以零或负数为结束标志),求其中的奇数和。要求定义和调用函数even(n) 判断数的奇偶性,当n为偶数时返回1,否则返回0。 解答: #include int even(int n); int main(void) { int n, sum; scanf("%d",&n); sum = 0; while(n > 0){ if(even(n) == 0) sum = sum + n; scanf("%d", &n); } printf("The sum of the odd numbers is %d.\n", sum); 第45/106页return 0; } int even(int n) { int y; if (n % 2 == 0) y = 1; else y = 0; return y; } 3.输入精度e,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数funcos(e, x)求余弦函数的近似值。 x0x2x4x6 cos(x) 0!2!4!6! 解答: #include "stdio.h" #include "math.h" double funcos(double e, double x); int main(void) { double e, sum, x; scanf("%le%le", &e, &x); sum = funcos(e, x); printf("cos = %f\n", sum); return 0; } double funcos(double e, double x) { int flag, i; double item, sum, tmp, power; flag = 1; power = 1; tmp = 1; i = 0; item = 1; sum = 0; while(fabs(item) >= e){ item = flag * power / tmp; sum = sum + item; power = power * x * x; 第46/106页tmp = tmp * (i+1) * (i+2); flag = -flag; i = i + 2; } return sum; } 4.输入两个正整数m和n(1<=m, n<=500),统计并输出m 和n之间的素数的个数以及这些素数的和。要求定义并调用函数prime(m)判断m是否为素数。 解答: #include "stdio.h" #include "math.h" int main(void) { int count, i, m, n, sum; int prime(int m); scanf("%d%d", &m, &n); count = sum = 0; for(i = m; i <= n; i++) if(prime(i) != 0){ count++; sum = sum + i; } printf("Count = %d, sum = %d\n", count, sum); return 0; } int prime(int m) { int k, i; if(m == 1) return 0; k = sqrt(m); for(i = 2; i <= k; i++) if(m % i == 0) return 0; return 1; } 5.输入两个正整数a和n, 求a+aa+aaa+aa…a(n个a)之和。要求定义并调用函数fn(a,n),它的功能是返回aa…a(n个a)。例如,fn(3,2)的返回值是33。解答: #include int main(void) { int a, i, n; long sn; 第47/106页 long fn(int a, int n); scanf("%ld%d", &a, &n); sn = 0; for(i = 1; i <= n; i++) sn = sn + fn(a, i); printf("%ld\n", sn); return 0; } long fn(int a, int n) { int i; long tn; tn = 0; for(i = 1; i <= n; i++) tn = 10 * tn + a; return tn; } 6.读入一个整数,统计并输出该数中2的个数。要求定义并调用函数countdig it(number,digit),它的功能是统计整数number中数字digit的个数。例如,c ountdigit(12292,2)的返回值是3。 解答: #include "stdio.h" int main(void) { int count, digit, in; int countdigit(int number, int digit); scanf("%d%d", &in, &digit); count = countdigit(in, digit); printf("Number %d of digit %d: %d\n", in, digit, count); return 0; } int countdigit(int number, int digit) { int count; if(number < 0) number = -number; count = 0; do{ if(number % 10 == digit) count++; 1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式 一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是( D )。 A. 软件是一种逻辑实体,具有抽象性 B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显着特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于( D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 测试题11 1.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(B)。 A、char s[10];strcpy(s,"abcdefg"); B、char s[10];s="abcdefg"; C、char s[10]="abcdefg"; D、char t[]="abcdefg",*s=t 2.下列语句的输出结果是(B)。 printf("%d\n",(int)(2.5+3.0)/3); A、2 B、1 C、有语法错误不能通过编译 D、0 3.以下程序段的输出结果是 A main() { char ch1, ch2; ch1 = …A? + …5? - …3?; ch2 = …A? + …5? - …3?; printf(“%d,%c\n”, ch1,ch2); } A、67, C B、B,C C、不确定的值 D、C,D 4.以下程序段的输出结果为(B)。 char c[]="abc"; int i=0; do ;while(c[i++]!='\0');printf("%d",i-1); A、abc B、3 C、ab D、2 5.相同结构体类型的变量之间,可以(C)。 A、比较大小 B、地址相同 C、赋值 D、相加 6. C语言源程序文件经过C编译程序编译连接之后生成一个后缀为(B)的可执行文件 A、.obj B、.exe C、.c D、.bas 7.以下程序的输出结果是 C main() { char s[] = “ABCD”, *p; for(p = s; p < s + 4; p++) printf(“%s\n”, p); } A、 B、 C、 D、 8.当调用函数时,实参是一个数组名,则向函数传送的是(B)。 A、数组每一个元素的地址 B、数组的首地址 C、数组每个元素中的值 D、数组的长度 9.如果int a=2,b=3,c=0,下列描述正确的是(D) A、a>b!=c和a>(b!=c)的执行顺序是一样的 B、a&&b>c的结果为假 C、a||(b=c)执行后b的值为0 D、!a!=(b!=c)表达式的值为1 10.当调用函数时,实参是一个数组名,则向函数传送的是(B)。 A、数组每个元素中的值 B、数组的首地址 C、数组的长度 说明:请将单项选择题(1~50空)的正确答案涂写考试答题卡,将填空(51~75空)等文字题按【】中的序号写入下面文字答题卡,否则不得分。 二、阅读程序题文字答题卡:(每空2分,共24分) 三、完善程序填空题文字答题卡:(每空2分,共26分) 一、单项选择题(每空1分,共50分) 请将正确答案按【】中的序号写入答题卡,否则不得分。 1.在C语言中,一条语句以【】字符作为结束符。 A),B);C).D)无符号2.以下4组标识符中,能作为变量名使用的是【】。 A)age,struct,s1 B)2A,b_3,main C)ELSE,a[2],m123 D)_abc,INT,abcd 3.判断char型变量ch是否为数字字符的正确表达式为【】。 A)0<=ch<=9 B)'0'<=ch<='9' C)(0<=ch)&&(ch<=9)D)('0'<=ch)&&(ch<='9') 4.已知小写字母a的ASCII码值是97,大写字母A的ASCII码值是65,下列语句中不能输出大写字母B的是【】。 A)putchar('A'+1);B)putchar('b'-32); C)putchar(98-32);D)putchar(B); 5.空字符串的长度是【】。 A)0B)1 C)2 D)3 6.整型变量a定义后赋初值的结果是【】。 int a=2.8*6; A)12 B)16C)17 D)18 7.若有以下说明语句,则该语句【】。 char a='\077'; A)使a的值包含1个字符B)使a 的值包含4个字符 C)使a的值包含3个字符D)说明不合法 8.下面的程序结果为:【】。 main() { int x=023; printf("%d\n",--x); } A)17 B)18C)23 D)24 9.源程序执行后,屏幕上显示【】。 main() { int a; float b; a=4; b=9.5; printf("a=%d,b=%4.2f\n",a,b); } A)a=%d,b=%f\n B)a=%d,b=%f C)a=4,b=9.50 D)a=4,b=9.5 10.设int x=10;x+=x%=(-6)+4;则x= 【】。 A)0B)16 C)18 D)10 11.C语言的下列运算符中,运算对象必须是整型数据的是【】。 C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行 精选考试类文档,如果您需要使用本文档,请点击下载! 祝同学们考得一个好成绩,心想事成,万事如意! 大学C语言考试试题及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a 第一单元程序设计和C语言 一、选择题 1.C语言的基本构成单位是:。 A. 函数 B. 函数和过程 C. 超文本过程 D. 子程序 2.一个C语言程序总是从开始执行。 A. 主过程 B. 主函数 C. 子程序 D.主程序 3.C语言的程序一行写不下时,可以。 A. 用逗号换行 B. 用分号换行 C. 在任意一空格处换行 D. 用回车符换行 4.以下叙述不正确的是:。 A. 在C程序中,语句之间必须要用分号";"分隔 B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数都能正确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 5.以下不正确的C语言标识符是。 A. ABC B. abc C. a_bc D. 6.下列字符串是标识符的是:。 A. _HJ B. 9_student C. long D. LINE 1 7.以下说法中正确的是:。 A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须放在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 8.不合法的常量是:。 A. ‘\2’ B. " " C. ‘3’ D. ‘\483’ 9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:。 int k,a,b; unsigned long w=5; double x=; A. x%(-3) B. w+=-2 C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3) 10.在C语言中,字符型数据在内存中以形式存放。 A. 原码 B. BCD码 C. 反码 D. ASCII码 11.若有定义:int a=7; float x=; y=; 一、选择题(每题 1 分,共 20 分) 1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。 A、循环 B、递归 C、转移 D、嵌套 2. 下列标识符中,合法的是_______ 。 A) unsigned B) 5ab C) INT# D)_num2 3. 若float x ;x = 10/4 ;x的值是。 A、2.5 B、2.0 C、3 D、 2 4. 表达式!x 等价于。 A、x==0 B、x==1 C、x != 0 D、x != 1 5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。 A、算术运算、赋值运算、关系运算 B、关系运算、赋值运算、算术运算 C、算术运算、关系运算、赋值运算 D、关系运算、算术运算、赋值运算 6. 能将高级语言编写的源程序转换为目标程序的是。 A、链接程序 B、解释程序 C、编译程序 D、编辑程序 7. 下列语句定义pf为指向float类型变量f的指针,是正确的。 A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f; 8. 一个C程序的执行是从。 A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 9. 能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)||(x<=10)||(x>=200)||(x<=210) C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D、(x>=1)||(x<=10)&&(x>=200)||(x<=210) 10. 对两个数组a和b进行如下初始化 char a[]=“ABCDEF”;char b[]={ …A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是。 A、a和b数组完全相同 B、a和b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长 11. 是不正确的字符常量。 A、'\n' B、'1' C、"a" D、'\101' 12. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 13. 设变量定义为“int x, *p=&x;”,则&*p相当于。 A、p B、*p C、x D、*&x 14. 有两个字符数组a、b,则以下正确的输入语句是。 A)gets(a,b); B) scanf(“%s%s”,a,b); C) scanf(“%s%s”,&a,&b); D) gets(“a”),gets(“b”); 15. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。 A、地址传递 B、单向值传递 第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数: (1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数: (1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少? 答: 0~65535、-128~127、-32768~32767 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。 答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么? 答: 《C语言》课程综合复习资料 一、单选题 1. 在C语言中,字符型数据在存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码 2. 在C语言中,十进制数47可等价地表示为 A) 2f B) 02f C) 57 D) 057 3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 3 4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是 A)10 B) 6 C) 0 D) 20 5. 已定义以下函数: fun(int *p) { return *p; } 该函数的返回值是 A)不确定的值 B)形参p所指存储单元中的值 C)形参p中存放的值 D)形参p的地址值 6. C语言中,函数返回值的类型是由 A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定 7. 有以下函数定义: void fun( int n , double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun( int y , double m ); B) k=fun( 10 , 12.5 ); C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 ); 8. 以下选项中不能正确赋值的是 A) char b[]={′H′,′e′,′l′,′l′,′o′,′!′}; B) char b[10];b="Hello!"; 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由 主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 C 语言程序设计 笔试试题 题号 一 二 三 四 五 六 笔试(70%) 综 合 (30%) 总分 分数 试卷说明: 1. 笔试卷面总分100分,取卷面成绩的70%计入总分; 2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%; 3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸; 4. 答题时间120分钟。 一、单项选择题。将正确答案填入下面框中。 (本题16分,每小题1分) 题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案 1. 有以下程序 main() {int a=1,b=0; if(!a) b++; else if(a==0) if(a) b+=2; else b+=3; printf(“%d\n ”,b); }则程序输出( A )。 A) 0 B) 1 C) 2 D) 3 2. 有以下定义:int a; long b; double x,y;则下列正确的是( A )。 A) a%(int)(x-y) B) a=x!=y C) (a*y)%b D) y=x+y=x 3. 若有定义 int (*p)[3];则下列说法正确的是( C )。 A) 定义了基类型为int 的三个指针变量 B) 定义了一个名为 *pt 、具有三个元素的整型数值 号 学 名 姓 注意行为规范 遵守考试纪律 C) 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组D) 定义了基类型为int的具 有三个元素的整型数组 4. 有以下程序段 main() { int x=10; while(x--); printf("x=%d\n",x);} 则最后的输出结果是:( B)。 A) x=0 B) x= -1 C) x=1 D)while构成无限循环 5. 有以下程序: int fun() {static int x=1; x *= 2; return x;} main( ) { int i,s=1 ; for(i=1 ;i<=2 ;i++) s=fun() ; printf(“%d\n ”,s) ;} 执行后的输出结果为( D)。 A) 0 B) 1 C) 8 D) 4 6. void main( ){ int k=011; printf("%d\n",k++); } }程序输出结果是( D ) A)12 B) 11 C) 10 D) 9 7. 以下C语言标识符中,不合法的是( C)。 A) _2 B) a_b C) a--b D) AaBc 8. C语言允许函数类型默认定义,此时该函数值隐含的类型是( B)。 A) float B) int C) long D) double 9. 以下程序段运行结果是( B)。 enum weekday{aa,bb=2,cc,dd,ee}week=ee; printf(“%d\n“,week); A) 4 B) 5 C) ee D) 0 10. 以下对C语言函数的描述中,不正确的是( B )。 A) 不同函数中可以使用相同名字变量B) 函数可以嵌套定义 C) 函数可以没有返回值D) 程序由函数组成 11. 若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是( D )。 A) *p B) *x C) *(p+1) D) x[5] C语言习题集 习题一 一.填空题 1.C程序是由(函数)构成的,一个C程序中至少包含(main函数)。因此,( 函数) 是C程序的基本单位。 2.C程序注释是由( /*) 和( */ ) 所界定的文字信息组成的。3.函数体一般包括( 变量声明) 和( 语句) 。 二.判断题 1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。【错】 2.main函数必须写在一个C程序的最前面。【错】 3.一个C程序可以包含若干的函数。【对】 4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。【对】 5.C程序的注释只能是一行。【错】 6.C程序的注释不能是中文文字信息。【错】 8.可以使用Visual C++ 6.来编译和连接一个C程序。【对】 9.可以使用Visual C++ 6.来运行一个C程序。【对】 10.可以使用Visual C++ 6.来实时调试(即动态调试)一个C程序。【对】三.简答题 1.写出一个C程序的基本结构。 2.简要叙述使用Visual C++ 6.0编译和运行一个程序的步骤。 四.编程题 1.提高题:参照课本例1.1,试编写一个C程序,输出如下信息。(提示:使用键盘上的一些符号)。 2.提高题:试编写一个C程序,输出如下信息。 ********************** *** @ @ *** *** @ *** ********************** 试试看,可以输出其他组合图案吗? 习题二 一.选择题 1、合法的字符常量是(ACD)。 A)…\t?B) “A” C)…a?D)?\x32? 2、合法的字符常量是( D) 。 A)…\084?B) …\84? C)…ab?D)?\x43? 3、(B)是C语言提供的合法的数据类型关键字。 A)Float B)signed C)integer D)Char 4、在以下各组标识符中,合法的标识符是((4))。 (1)A)B01 B)table_1 C)0_t D)k% (2)A)Fast_ B)void C)pbl D) C语言试题及答案 Company number【1089WT-1898YT-1W8CB-9UUT-92108】 第1章C语言概述习题1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言 的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 c语言试卷及答案1 浙江理工大学 C程序设计试题(一) 试题二、语言基础题(本题共30分) (一)判断题(本题共10分,每小题1分) 说明:在以下提供的若干陈述中,逐一判断其正确与否,选A表示正确,选B表示错误。 (16) C语言程序的三种基本结构是顺 序、选择和嵌套。 (17) 在C语言程序中,在函数内部定 义的变量称为全局变量。 (18) 运算符“=”和“&=”的优先级相 同。 (19) ‘%f’是不正确的字符常量。 (20) 运算符“+”不能作为单目运算符。 (21) 如果运算符“*”和“/”都是右 结合的,则表达式10*6/5的值是10。 (22) s(s-a)(s-b)(s-c)是合法的C语 言表达式。 (23) 表达式!!6的值是6。 (24) 表达式~(~2<<1)的值是5。 (25) 对于变量定:int a[10],*p=a+8; 数组a的最后一个元素是p[1]。 (二)单选题(本题共20分,每小题2分) (26) 执行语句printf("(26) ", "A");将得到出错信息。 A、%u B、%s C、%e D、%d (27) 设c是一个字符变量,求解表达 (27) 后,c的值不是1就是0。 A、c=getchar()!=’\n’ B、(c=getchar()!)=’\n’ C、c=’1’ D、c=EOF (28) 下列定义中,(28) 定义的变 量可以存放-123.4。 A、long a; B、 unsigned b; C、int d; D、float c; (29) 对于变量定义;char *pp[100], pp是一个(29) 。 A、函数 B、数组元素 C、指针变 量D、数组 (30) 下列程序段的输出结果是 (30) 。 char *st[ ]={ "SUM","MOON","STAR","X"}; printf("(%s,%c) ",*(st+1)+1,*(*(st+2)+2)+2) 实验一 (1)编程求37+29的值,实习VC环境。 #include B 程序代码 #include 大学C语言考试题库 第1章 C语言概述习题 1、单项选择题 (1) C 语言就是在 B 语言的基础上产生的。 A、 A B、 B C、 D D、 E (2) 在 C 语言中,每个语句必须以 D 结束。 A、回车符 B、冒号 C、逗号 D、分号 (3) 标识符与关键字间,要用 C 隔开。 A、回车符 B、冒号 C、空格 D、分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A、生成可执行目标文件 B、生成目标文件 C、输出运行结果 D、自动保存源文件 (5) 下列说法中正确的就是( B )。 A、由于 C 源程序就是高级语言程序,因此一定要在 TC 软件中输入 B、由 C 源程序就是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C、由于C 程序就是高级语言程序,因此输入后即可执行 D、由于 C 程序就是高级语言程序,因此它由命令组成 (6) 下列说法中正确的就是( A )。 A、 C 语言程序由主函数与 0 个或多个函数组成 B、 C 语言程序由主程序与子程序组成 C、 C 语言程序由子程序组成 D、 C 语言程序由过程组成 (7) 下列说法中错误的就是( D )。 A、主函数可以分为两个部分:主函数说明部分与主函数体 B、主函数可以调用任何非主函数的其她函数 C、任何非主函数可以调用其她任何非主函数 D、程序可以从任何非主函数开始执行 2、填空题 (1) C 语言只有 32 个关键字与 9 种控制语句。 (2) C 语言就是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发 系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总就是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集就是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度就是前 8 位有效。 (7) C 语言中,标识符的定义规则就是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总就是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 第2章数据类型运算符与表达式习题 1、单项选择题 (1) 以下选项中,正确的 C 语言整型常量就是 D 。 A、 32L B、 510000 C、 -1、00 D、 567 (2) 以下选项中, D 就是不正确的 C 语言字符型常量。 A、 'a' B、 '\x41' C、 '\101' D、 "a" (3) 在 C 语言中,字符型数据在计算机内存中,以字符的 C 形式存储。 A、原码 B、反码 C、 ASCII 码 D、 BCD码 (4) 字符串的结束标志就是 C 。 A、 0 B、 '0' C、 '\0' D、 "0" (5) 算术运算符、赋值运算符与关系运算符的运算优先级按从高到低依次为 B 。 A、算术运算、赋值运算、关系运算 B、算术运算、关系运算、赋值运算 C、关系运算、赋值运算、算术运算 D、关系运算、算术运算、赋值运算 (6) 逻辑运算符中,运算优先级按从高到低依次为 D 。 A、 &&,!,|| B、 ||,&&,! C、 &&,||,! D、 !,&&,|| (7) 表达式!x||a==b 等效于 D 。 A、 !((x||a)==b) B、 !(x||y)==b C、 !(x||(a==b)) D、 (!x)||(a==b) (8) 设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值就是 A 。 A、 0,0 B、 0,1 C、 1,0 D、 1,1 (9) int b=0,x=1;执行语句 if(x++) b=x+1; 后,x,b 的值依次为 A 。 习题一 一、简答题 1.顺序结构、选择(分支)结构和循环结构。 2. (1) (2) 3.编辑、编译、连接和运行 二、填空题 1. Ctrl+F9;Alt+F5;F2。 2. main(主) 3. main(主) 4. 任意 5. /* */ 不 6. ; 7.。 程序: include studio.h main{} /* this program prints the number of weeks in a year. /* ( int s s:=52; print(There are s weeks in a year"); 正确的为: #include 习题二 一、选择题 1、C 2、B,D,F,G 3、C 4、A 5、C 6、B 二、填空题 1、声明;使用。 2、整型、浮点型(实型)、字符型。 3、hat_1,cat1,all, Dollar, piece_f, SIN, _ , FALSE. 4、'A'(字符),005(整型),3e0(整型),'\\'(字符),'\05'(字符), 1.2e+5(整型),0xf12(整型)。 5、(1)6+(4+5)*(4+5)/(2+3) (2)sin(a+b)*ain(a+b)/ (4*2)/(3*2)+2 三、读程题 1.若x为float型,其原值为5,a=2,b=4.7。写出下列表达式运算后x的值。 (1)x=(int)(b-a)%3*a/4-a (2)x=(x=b+1)+(int)(b)%10/2.0 (3)x+=x (4)x-=x (5)x*=x+x (6)x/=x+x (7)x+=x-=x*=x (8)x%=x (9)x=3*4,5*6 答案:(1)-1,(2)7.7,(3)10,(4)0,(5)50,(6)0.5,(7)0,(8)非法,(9)12。 2.写出下面程序的运行结果。 #includec语言试题及答案
C语言试题及答案
C语言习题级参考答案
C语言程序设计试卷含答案
(完整版)C语言试题及答案解析
大学C语言考试试题及答案
C语言习题全集+答案
C语言试卷及答案
C语言课后习题答案(最终)
c语言试题及答案
c语言试题及答案 ()
C语言程序设计试卷及答案
C语言习题及参考答案
C语言试题及答案
c语言试卷及答案1
c语言习题答案
C语言试题与答案
C语言课后答案