C语言期末复习题
关于环保-植物园手抄报
本科C程序设计期末复习题
一,选择
1.C
语言程序中可以对程序进行注释,注释部分必须用符号__C___括起来。
A.‘{‘ 和’}’
B.‘[‘和’]’ C.“*”和”*” D.“*”和”*”
2.C
语言程序的三种基本结构是顺序结构、选择结构和__B____结构。
A.递归
B.循环 C.转移 D.嵌套
3.若变量已正确定义,表达式(j=3, j++) 的值是__B___ 。
A.3
B. 4 C.5 D.0
4.已知字符‘a’的ASCII码为 97 ,执行下列语句的输出是__D___。
printf (
A.98, b B.语句不合法 C.98,
99 D.98, c
5.表达式strcmp(“box”, “boss”)
的值是一个___A____。
A.正数 B.负数 C.0
D.不确定的数
(答案是1,也就是正数。strcmp是这样比较的,两个字符串,从第一个字符开
始比,
如果相同,继续向下比,如果不同,看这两个字符的ASCII码,如果第一个字符串的
比较大,则返回1,否则返回-1。这个题目两个字符串前面两个字符是一样的,
不用看。比较第三个字
符,'x'的ASCII码是120,'s'的ASCII码是115,也就是'x'>'s',
所以第
一个字符串比较大,返回1)
6.数组定义为 int a[3][2]={1, 2, 3, 4,
5, 6},数组元素_B____的值为6。
A.a[3][2] B.a[2][1]
C.a[1][2] D.a[2][3]
(a[1][2]值为6,行下标从0到1,列下标从0到2,最后一个元素是a[1][2])
7.要调用数学函数时,在#include命令行中应包含__C___。
A.”stdio.h” B.”string.h” C.”math.h”
D.”ctype.h”
8. 对于以下结构定义,++p->str中的++加在___A__。
struct {
int len;
char *str;
} *p;
A. P的成员指针str上
B.指针p上
C. P的成员str指的内容上 D.以上均不是
9.若a是基本整型变量,c是单精度实型变量,输入语句___D___是错误的。
(”%d,%f”, &a, &c); (”d=%d, c=%f”, &a, &c);
(”%d%f”, &a, &c); (”%d%f”, a, c); <
br>10.若变量p已正确定义并且指针p已经指向某个变量x,则(*p)++相当于
__B___
。
A.p++ B.x++ C.*(p++)
D.&x++
11. 下列叙述中正确的是( A )。
A.函数定义不允许有嵌套,但函数可以嵌套调用
B.函数定义可以嵌套,但函数调用不可以嵌套
C.函数定义和函数调用都不能嵌套
D.函数定义与函数调用都可以嵌套
12. 以下程序的输出结果是 B
main()
{char
a[10]=”6789”,*p;
p=a;
printf(“%sn”,p);
A.6 B.6789
C.'6' D.789
13. 若有说明:int a[
][3]={1,2,3,4,5,6,7};则a数组第一维的大小是__B__。
A.2
B.3 C.4 D.无确定值
(int
a[][3]={1,2,3,4,5,6,7};这个定义相当于是这样
的 .int
a[][3]={{1,2,3},{4,5,6},{7}}; 所以a的第一个维度就是3。系统会根据第<
br>二个维度大小自动设置第一个维度。注意,这里第二维度是不能像第一个维度那
样省略的。)
14.__D____是合法的用户自定义标识符。
A. b-b
C.
( 1)
标识符由字母、数字、下划线“_”组成,并且首字母不能是数字.
2)
不能把C语言关键字作为标识符,例如if ,define ,for, while等.
3)
标识符长度是由机器上的编译系统决定的,一般的限制为8字符
(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分
工业标准都更长)。
4) 标识符对大小写敏感,即区分大小写。
5)标识符命名应做到“见名知意”
下面的标识符名是合法的:
year,Day,ATOK,x1,_
CWS,_change_to
而下面的标识符名是不合法的:
#123,.COM,$$100,1996Y,1_2_3,Win3.2 )
15.__C____是不正确的字符常量。
A.'n' B.'1'
C. D.'101'
16.在 C 程序中,用__B___表示逻辑值“真”。
A.-1 B.非 0 的数 C.非 1 的数 D. 0
17.把x、y定义成float类型变量,并赋以相同初值3.14,以下语句正确的是
_C
x, y=3.14; x, y=2*3.14;
x=3.14, y=x=3.14; x=y=3.14;
18.若变量已正确定义,语句“if(a>b) k=0; else
k=1;”和__C____等价。
A.k=(a>b)?1:0;
B.k=a>b;
C.k=a<=b; D.a<=b
? 0 : 1;
19.设变量定义为“int a,
b;”,执行下列语句时,输入__A___,则a和b的值
都是10。
scanf(;
A.10 10 B.10, 10 C.a=10 b=10
D.a=10, b=10
20.在C程序中,若对函数类型未加说明,则函数的隐含类型为_A____。
21.设变量定义为“int x, *p=&x;”,则&*p相当于__ A___。
A.p B.*p C.x D.*&x
(选择 A.
因为*p是指针。当x的地址赋值个指针p的时候,他们的地址就一
样(数值也是一样)。
指针的话,要表示数值的话用用*p,指地址的话,只要p就可以。
如果加地址符号&,那就值该指针的地址(&*p),也就是值x的地址。
ABCD中,只有A选项表p的地址(即是x的地址)。
B、C和D都是表值。)
22.对于以下的变量定义,表达式___ D__不符合C语言语法。
struct
node
{ int len;
char *pk;
} x = {2,
A.p->pk B.* C.*p->pk
D.*
23.有以下程序段
int k=0
while(k=1) k++;
while 循环执行的次数是____A__
A. 无限次
B. 有语法错,不能执行
C. 一次也不执行 D. 执行1次
(
无限次,因为while里面是 k=1 这是一个赋值语句
如果是判断语句应该是while k==1.
因为是赋值语句 所以每次都是会执行 )
24. 以下c语言函数声明中,不正确的是__B____
fun (int
x, int y); (int x, int y);
fun (int x,y);
*fun (char *s);
25. 若有说明:int
a[3][4];则对a数组元素的正确引用是——C—。
A.a[2][4]
B.a[1,3] C.a[1+1][0] D.a(2)(1)
26.
若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为
_D_。
(假设a[0][0]位于数组的第一个位置上。)
A.i*m+j
B.j*m+i C.i*m+j-1 D.i*m+j+1
27.
以下正确的说法是___C__。
A.定义函数时,形参的类型说明可以放在函数体内
后边的值不能为表达式
C.如果函数值的类型与返回值类型不一致,以函数值类型为准
D.如果形参与实参的类型不一致,以实参类型为准
28. C
语言程序的三种基本结构是顺序结构、选择结构和_C_____结构。
A.递归
B.转移 C.循环 D.嵌套
29.
以下不能定义为用户标识符是( D )
B._0 C._int
30.
假定有以下变量定义:
int K=7,X=12;
则能使表达式值为3的是( D )
A.X%=(K%=5)
B.X%=(K-K%5)
C.X%=X-K%5
D.(X%=K)-(K%=5)
31.设x,y均为float型变量,则以下不合法的赋值语句是—D——.
A.++x;
B.y=x%2; C.x*=y+8; D.x=y=0;
32.
以下叙述正确的是—C——。
A.在C程序中,main函数必须位于程序的最前面
B.C程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
33.
函数的返回值的类型是:(A )
A.函数的类型
B.函数类型与return语句中表达式类型中高的类型
语句中表达式的类型
D.调用函数所赋值的变量的类型
34.数组定义为 int a[11][11],则数组a
有__D___个数组元素。
A.12 B.144
C.100 D.121
35.对于以下的变量定义,表达式_D_____是不正确的。
struct node
{
int j, k;
} x, *p=&x;
A.p->k=2
B.(*p).k=2 C.x.k=2 D.x->k=2
36.不正确的赋值或赋初值的方式是__B____。
A.char str[ ]=
B.char str[10]; str=;
C.char *p=.char *p;
p=
37. 以下关于宏替换的叙述不正确的是 (
B )
A.宏替换只是字符替换 B.宏名无类型
C.宏替换不占用运行时间 D.宏替换不占用编译时间
38.为了表示关系x>=y>=z,应使用C语言表达式:(A )
A.(x>=y)&&(y>=z) B. (x>=y) AND(y>=z)
C.(x>=y)||(x>=z) D. (x>=y)&(y>=z)
39.已
有函数max(a,b),为了使函数指针变量p指向函数max,正确的赋值方法
是:(D )
A.p=max B.*p=max C.p=max(a,b)
D.*p=max(a,b)
40.设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
scanf(
为了把100和765.12分别赋给i和f,则正确的输入为(B )
A.100,765.12 B.i=100,f=765.12 C.100
765.12 D.x=100 y=765.12
s[4][5],(*ps)[5];
ps=s;
则对s数组元素的正确引用方式是:( C)
A. ps+1
B. *(ps+3) C. ps[0][2] D. *(ps+1)+3
42. C 语言程序的三种基本结构是顺序结构、选择结构和__C____结构。
A.递归 B.转移 C.循环
D.嵌
套
43.
为表示关系x≥y≥z,应使用C语言表达式 A
A)(x>=y)&&(y>=z) B(x)=y)AND(y)=z)
C)(x)=y)=z) D)(x)=y)&(y)=z)
44.
设有说明int s[2]={0,1},*p=s; 则下列错误的C语句是 (A )
A.s+=1; B.p+=1; C.*p++; D.(*P)++;
(数组名不能进行自反赋值运算,数组名就代表这个数组的首地址,是不能更改的)
45. 以下选项中不正确的字符常量是__D___。
A.'1' B.'0'
C.'%d' D.10
46.
设有如下定义:
int
x=10,y=3,z;
则语句
printf(“%dn”,z=(x%y,xy));
的输出结果是
A)1 B)0
C)4 D)3
(x%y = 1 xy=3 ,(x%y ,xy ) 为逗号表达式 结果取最后一位)
47. 已知字符 ‘a’ 的ASCII码为 97 ,执行下列语句的输出是__A___。
printf (
A.b99
B.98c C.9899 D.bc
48. 在C
语言程序中,在函数内部定义的变量称为____C__。
A.全局变量
B.外部变量
C.局部变量 D.内部变量
49. 以下对一维数组的定义中,正确的是: A 。
A)
#define MAX 5 B) int MAX=5;
int a[MAX];
int a[MAX];
C) int MAX; D)
#define MAX 5;
Scanf(“%d”,&MAX); int a[MAX];
int a[MAX];
50. 若有以下定义及语句:
struct s1
{
char a[3];
int
num;
}t={„a‟,‟b‟,‟c‟,4},*p;
p=&t;
则输出值为c的语句是__B______。
A)
printf(“%cn”,p->t.a[2]);
B)
printf(“%cn”,(*p).a[2]);
C)
printf(“%cn”,p->a[3]);
D)
printf(“%cn”,(*p).t.a[2]);
51. 对于变量定义:int
**p[10], p 是一个__B____。
A.指针 B.数组
C.函数 D.数
组元素
52.
C语言规定:在一个源程序中,main函数的位置 C 。
A)必须在程序的最开始
B)必须在系统调用的库函数的后面
C)可以任意
D)必须在程序的最后
53.
两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 D
main()
{int x;
scanf(“%d”,&x);
if(x>5)printf(“%d”,x);
else printf(“%dn”,x--);
}
A)7和5
B)6和3 C)7和4 D)6和4
54.
以下程序的输出结果是 ( C)
A}2 0 B}3 1;
C}3 2 1 0 D}2
1 0
main()
{int n=4;
while(n>0) { n--; printf(“%d ”,n); }
}
55. 不能把字符串:Hello!赋给数组b的语句是 B
A)char b[10]={'H','e','l','l','o','!'};
B)char b[10];b=“Hello!”;
C)char
b[10];strcpy(b,“Hello!”);
D)char
b[10]=“Hello!”
(字符数组初始化有两种方法:一种是逐个字符赋值,另一种是用字符常量对整个数组赋值。
A是第一种,D是第二种。显然第一种比第二种繁琐复杂。
C是字符串拷贝函数。
函数格式: char *strcpy (char *s1, const char
*s2);
功能: 将S2所指的字符串拷贝到S1所指的字符串中。
说明:
(
1)参数S1S2都是指向字符串的指针。S1可以是字符数组名或字符指针,但不能是字符
型常量,S
2可以是字符串常量、字符数组或字符指针。
(2)将S2所指的字符串拷贝到S1所指的字符串中,
用赋值语句S1=S2;是不行的,赋值
语句要求左边是左值,S1是常量。
(3)要保证S1的长度足够大,以便能容纳下S2所指的字符串,否则引起错误。
C 对于
非strtic型数组不初始化,其元素值不能确定。对strtic数组元素不赋初值,系统会
自动赋
以0值。)
56.
表达式:10!=9的值是 D
A)true
B)非零值 C)0 D)1
57.C
语言程序的三种基本结构是顺序结构、选择结构和____A__结构。
A、循环
B、递归 C、转移 D、嵌套
58.若x是单精度实型变量,表达式
(x = 104) 的值是__B___ 。
A、2.5 B、 2.0
C、 3 D、 2
59. 已知 int j,i=1;
则执行j=-i++; i和j的值为( C )。
A)1,-1 B)1,1
C)2,-1 D)2,1
60.下列程序的运行结果是( A )。
main( )
{ char s[20]=“China”;
printf("%dn",strlen(s));
}
A)5 B)6
C)20 D)无显示
61. 以下程序的输出结果是( C )。
main( )
{ Int
j,x[3][3]={1,2,3,4,5,6,7,8,9};
for(j=0;j<3;j++) printf("%d,",x[j][2-j])) ;
}
A)1,5,9 B)1,4,7 C)3,5,7 D)3,6,9
(for循环里面一共是循环三次 所以输出的分别是X[0][2](J=0
时);X[1]
[1](J=1时);X[2][0](J=3时)
所以分别是第3 5 7)
62.下列叙述中正确的是( A )。
A)函数定义不有嵌套,但函数调用可以嵌套
B) 函数定义可以嵌套,但函数调用不可以嵌套
C) 函数定义和函数调用都不能嵌套
D)函数定义与函数调用都可以嵌套
63.若x为整型变量,以下定义指针的正确语句是(
C )。
A)int p=&x; B)int p=x;
C)int
*p=&x; D)p=x;
64.
以下有关宏替换的叙述不正确的是—B———。
A)宏替换不占用运行时间 B)宏名无类型
C)宏替换只是字符替换
D)宏名必须用大写字母表示
65.若k为整型,以下while循环____B_____次。
int
k=10;
while (k=0) k=k-1;
A) 10次
B) 无限循环
C) 一次不执行 D) 执行一次
(0次 while(k=0)k=k-1;
k=0
先给中赋值再判断k
while(k)相当于是while(k!=0)这里k为0,所以为假,退出)
66.某文件中定义的静态全局变量(或称静态外部变量)其作用域是 ( B)
A.只限某个函数 B.本文件
C.跨文件 D.不限制作用域
67.
以下程序的输出结果是 ( B ) 。
# include
main()
{
int a ,b,d=241;
a=d100%9;
b=(-1)&&(-1);
printf(
}
A) 6,1 B) 2,1 C) 6,0 D) 2,0
68. 下面的程序
B
A) 输出的是1 B) 输出的是1和-2 C)
输出的是3和0 D) 是死循环
main()
{ int x=3;
do {
printf(
}while(!(--x));
}
69. 下面程序的输出是 B
A) 741 B) 852 C) 963 D)
875421
main()
{
int y=9;
for(
y>0; y--)
{
if(y%3==0)
{
printf(
}
}.
}
70. 以下说法中正确的是
C
A) C语言程序总是从第一个的函数开始执行
B)
在C语言程序中,要调用的函数必须在main()函数中定义
C)
C语言程序总是从main()函数开始执行
D)
C语言程序中的main()函数必须放在程序的开始部分
71.
当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 C
A) c=b=a;
B) (a=c) ‖(b=c) ;
C) (a=c) &&(b=c); C) a=c=b;
72.程序说明:根据下式计算s
的值,要求精确到最后一项的绝对值小于10
-6
。
s =
1-13+15-17+„„.
#include
#include
void main()
{ int flag = 1, t
= 1;
(1)
while( (2)
){
item = flag * 1.0 t
s = s + item
(3)
t =t+2;
}
printf
( “s = %fn” ,s);}
B(1) item = 2 , s = 0;
item = 0 , s = 0;
item = 1 ,
s = 1; item = 3 , s = 1;
D(2) <1E-6
>=1e-6; (item)<1E-6
(item)>=1E-6
C(3) =
-1 B.s = -s = -flag; D.t = -t
73.程序说明:输入一批以-1结束的整数,求偶数和。
#include
void main( )
{ int x,sum;
sum=0;
scanf(“%d”,&x);
________
{ if ________
sum=sum+______;
___________;
}
printf(“sum=%d”,sum);
}
B (1)
A. while(x==-1) (x!=-1)
C.
if(x==-1) (x!=-1)
C(2)
A.x==2 B.x%2==2 C.x%2==0 D.x2==0
A (3) A.X B.2 C.1 D.-1
A (4)
(“%d”,&x) (“%d”,x) =0 D.x=sum
74.
输入100个整数,将其中的前20个数从小到大排序,然后输出这100个数。
#
include
void sort( (1) )
{ int
i, k, m, t;
for(i=0; i< n-1; i++)
{
k=i;
for(m=i+1; m
(3)
} }
void main( )
{
int k,
a[100];
for(k=0; k<100; k++)
scanf(
(4)
for(k=0; k<100;
k++)
printf(
}
A(1) a, int n
*a, int n
*a, int *n
a[ ]
D(2) A.a[m-1]>a[m]
B.a[m-1]
77. 程序功能:输入n以
及小于n个字符的字符串,将字符串中所有小写字母改
为相应的大写字母后,输出该字符串。
#include
#include
void main()
{ int n,i;
char
str[100];
scanf(
for(i=0;i<___(1)______;i++)
if(str[i]>='a'&& str[i]<='z') str[i]=__ (2)______;
puts(str);
}
B (1) A. len(str)
(str)
C. strcmp(str) (str)
A
(2) [I]-('a'-'A') [I]- ('A'-'a')
C.
str[I]-('a'+'A') D. str[I]-'A'
78.以下程序的输出结果是 C
A) 5 2 B) 5 1 C) 5
3 D) 9 7
main( )
{
int
i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i<4;i+=2)
printf(,p[i]);
}
二,填空
1.
写出下列程序段的输出结果____1,0.0_____。
float x1, x2;
x1=32;
x2=x12;
printf(
2.
在C语言中,while语句中的条件为_____0_____时,结束该循环。
3.
写出下列程序段的输出结果____-2__。
#define A 10
#define B (A printf(
4.
写出判断字符变量c是英文字母的表达式
c>=’a’&&c<=’z’||
c>=’A’&&c<=’Z’
。
5.
字符型数据的存储需要__1_________个字节。
6.
C程序中程序的入口是__main____函数。
7.
执行下面程序中的输出语句,a的值是_20____
main()
{ int a;
printf(
}
((
括号运算符的结果是a+5的值
第一步a=15
第二步对a不影响
第三步a+5=20
所以输出20
))
8.写出下列程序段的输出结果____12,d_ ____。
char str[]=
printf(
9.在C程序中,语句之间必须要用_
_分号_____分隔。
10.__break___语句可以使得c程序的执行直接从循环中跳出。
11.以下程序的功能是用递归方法计算学生的年龄,已知第一位学生年龄最小,
为10岁,其
余学生一个比一个大2岁,求第5位学生的年龄。请填空。
#include
age(int n)
{ int c;
if(n= =1) __(1)_
_c=10_____;
else c=__(2)_
age(n-1)+2_____;
return(c);
}
main()
{ int n=5;
printf(“age: %dn”,____(3)_ __c
_);
}
12.
下面这个程序的功能是将字符串s中所有的字符c删除。
#include
main()
{
char s[80];
int
i,j
printf(
gets(s)
for
(i=j=0;_ (1)_ i<80 ______ i++)
{
if(s[i]!=’c’) ___(2)__ s[j]=s[i];j++ __;
}
s[j]=’0’;
puts(s);
}
13.表示“x≥y≥z”的C表达式是:____(x>=y)&&(y>=z) 或者
x>=y&&y>=z
____。
(应该注意的知识点是:
1.运算符的优先级:关系运算符的优先级高于逻辑运算符
2.结合性:都是自左至右
3.运算对象的个数:都是双目运算符
4.表达式的结果:真或假,即0或1
另外
需要注意的是,只有当x>=y为真时,才需要判断y>=z的值,也就是当x>=y
为假时,后面的运
算就不执行了)
14.下面的程序段输出结果为:__20_____。
main()
{ int a;
printf(
}
(
括号运算符的结果是a+5的值
第一步a=15
第二步对a不影响
第三步a+5=20
所以输出20
)
15.下列程序段的输出是___5,25____。
#define f(a, b,
x) a*x+b
printf(
16.当调用函数时,实参是一个数组名,则向函数形参
传送的是__
被传数组首元素的地址
_____。
17.设X为整型,则以下语句的输出结果是___3_______。
x=113;
printf(“%dn”,x);
18.若i为整型变量,则以下循环执行次数是____0________。
for(i=2,i==0;) printf(“%d”,i- -);
19.在C语言中,表达式为逻辑值假时用 0 表示。
20.下列程序段的输出是___6__。
int *p, *q, k=5 ,
j=6
q=&k p=q q=&j
printf(
21.以下程序的输出结果是_____
.输出值不确定
_
。(
由于数组a只有部分值初始化了,
所以没有初始化的成员的值是不确定的
)
main()
{ int
a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf(
}
22.变量的指针含意是指变量的__存储地址____。
23. 输入一个字符串和一个正整数m,将该字符串中的前m个字符复制到另一个
字符串中,
再输出后一个字符串。
#include
#include
void main( )
{
char s[80], t[80], i, m;
printf(
gets(s);
printf(
scanf(
for(i
=0; (1) i
(3) t[i]='0'
printf(
puts(t);
}
24. 输入1个正整数 n,
计算并输出 s 的前n项的和。
s = 12 -23 + 34 - 45 +
„„(-1)
n-1
n(n+1)
#include
void main( )
{ int k, flag=1, n;
float s=0;
scanf(
for (k=1;k<=n;
k++){
s=s+ (1) flag*n(n+1)
(2) flag=-flag
}
printf(
}
25若有定义:char
c=‘010’;则变量c中包含的字符个数为: 1 。
26.
以下循环体的执行次数是______1_____
main()
{ int i,j;
for(i=0,j=1; i<=j+1; i+=2, j--) printf(
}
27. 在C语言中,表达式为逻辑值假时用 0 表示。
28.
下面程序段运行结果是—3——.
main()
{ int
x=10,y=3;
printf(
}
29. 若有定义double
x[3][5];则x数组中列下标的最大值为__4__。
30.
下面程序的运行结果是—12——。
#define MUL(z)
(z)*(z)
main()
{
printf(“%dn”,MUL(1+2)+3);
31. 变量的指针含意是指变量的_
存储地址
______。
32.
在C语言中,输入操作是由库函数_ main______完成的。
33. 有int
a=3,b=4,c=5;则表达式 a||b+c&&b 的值为___1____。
34.
设P是一个长度为5的一维整型指针数组,该数组的定义
为 *p[5]
P145 。
35.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
请填空。
int n=0,c;
c=getchar();
while(___c!=’n’__)
{ if(__c>=’1’&&c<=‘9’ __) n++;
c=getchar();
}
36.下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填
空。
main()
{ int
a[2][3]={{1,2,3},{4,5,6}};
int
b[3][2],i,j;
printf(“array a:n”);
for(i=0;i<=1;i++)
{
for(j=0;___1 _j<=2___;j++)
{
printf(“%5d”,a[i][j]);
_______2__
b[j][i]=a[i][j]______;
}
printf(“n”);
}
printf(“array b:n”);
for(i=0;___3_j<=2___;i++)
{
for(j=0;j<=1;j++)
printf(“%5d”,b[i][j]);
printf(“n”);
}
}
37. 以下程序的输出结果是 B
A)6 B)6789 C)'6'D)789
main()
{char
a[10]=”6789”,*p;
p=a;
printf(“%sn”,p);
38.下列程序执行后输出的结果是_____
int d=1;
fun (int q)
{int d=5;
d =p ;
printf(“%d”,d);
}
main()
{int a=3;
fun(a);
d =a ;
printf(“%dn”,d); }
答案:由于调用了一次fun()函数,所以先输出:8
在主函数里输出:4
39. 从键盘上输人5,则输出结果是:4
main()
{ int x;
scanf(
if(x--<5) printf(
else
printf(
}
40. 表达式4﹥10?5>3?(4,2):3:(6,7)的值为
7 。
41._break___语句可以使得C程序的执行直接从循环中跳出。
42.
执行下列语句中,sum变量的值是____45___
int
sum=0
for(int
i=0;i<10;i++,sum+=i);
43.__%____运算符号要求运算对象必须是整型。
44.
下列程序运行结果:____sum=15__________
#include
int mian( )
{ int i=0,sum=0;
while (1)
{ sum+=i;
i++;
if (i>5) break;
}
printf (″sum=%dn″,sum);
}
45. 下列程序运行结果:____ __a=15__________________
int fun(int n)
{ if (n>0)
return n*fun(n-1);
else
return 1;
}
main()
{ int
a=fun(4);
printf(″a=%dn″,a);
}
46.
下列程序运行结果:____6________________
fun (int i)
{ static int s=3;
s+=i
return (s);}
main()
{ int a=2,b=1,s;
s=fun(a); s=fun(b);
printf(″%dn″,s);}
47.
以下程序的输出结果是_10,9_________
main()
{
int x=10,y=10;
printf(“%d %dn”,x--,--
y);
}
48.
在C语言中,while语句中的条件为_____0_____时,结束该循环。
49.若执行下面的程序时从键盘上输入3和4,则输出是 B
A) 14 B) 16
C) 18 D) 20
(输入后 将a的值赋给s 此时s=3
然后比较a和b
若a比b小就将b的值赋给s 此时s=4
最后s*=s 即s=s*s)
main()
{
int a,b,s;
scanf(
s=a;
if(a s=s*s;
printf(
}
C语言中,内部变量隐含的存储类型是: __int _____
设X为整型,则以下语句的输出结果是____3______
x=113;
printf(“%dn”,x);
50.若执行下面的程序时从键盘上输入5,则输出是
B
A) 7 B) 6 C) 5 D) 4
main()
{ int
x;
scanf(
if(x++>5) printf(
else printf(
}
51.下面程序的输出是 A
A) 3 B) 4 C) 1 D) 2
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf(
}
ab
能正确表示的C语言表达式是:___(1)______
cd
52.执行下面程序中的输出语句,a的值是 B
A) 65
B) 20 C) 15 D) 10
main()
{ int a;
printf(
}
53. 执行下面的程序后,a的值为
main()
{
int a,b;
for (a=1,b=1;a<=100;a++)
{ if(b>=20) break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
}
8