C语言期末复习题

萌到你眼炸
738次浏览
2020年08月03日 23:47
最佳经验
本文由作者推荐

关于环保-植物园手抄报



本科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. D. _isw
( 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 if( (2) ) k=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]



C.a[k]a[m]
C(3) A.a[k] = a[i]; a[i] = a[k]; B.a[k] = t a[k] = a[i]; a[i] =
t;
C.t = a[k]; a[k] = a[i]; a[i] = t; D.a[i] = a[k]; a[k] = a[i];
B(4) (a, 20) (a[ ], 20)
(a[20]) (a[ ])
75.输入一个字符串,将其中的大写字母转换为小写字母后输出。
#include
#include
void main()
{ char str[80];
int k;
gets(str);
for(k=0;str[k]!=’0’;k++)
if(____(1)____) ____(2)_____;
put(str);}
C(1) A.‘A’<=str[k]<=’Z’ B. str[k]>’a’&& str[k]<’z’
C. str[k]>=’A’&& str[k]<=’Z’ D. str[k]>=’A’|| str[k]<=’Z’
D(2) [k]=str[k]-32 B. str[k]= str[k]-‘a’+’A’
C. YOLOERT(str[k]) D. str[k]= str[k] +’a’-‘A’

76. 求 1 + 23 + 35 + 47 + 59 + „ 的前20项之和。
运行示例:
sum = 11.239837
【程序】
#include
void main( )
{
int i, b = 1;
double s;
(1)
for(i = 1; i <= 20; i++)
{ s = s + b
(2)
}
printf( (3) , s);
}
【供选择的答案】
A(1) A.s = 0 B.s = 1
C.s = -1 D.s = 2
D(2) A.; B.b = 2 * i – 1;
C.b = 1.0 * b; D.b = b + 2;
C(3) A. B.
C. D.



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 (2) t[i] = s[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(
}
ab
能正确表示的C语言表达式是:___(1)______
cd
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

单身证明范本-中国人民公安大学研究生院


西安事变简介-法制教育手抄报图片


西安外国语大学招生网-农村工作总结


现代诗歌精选-航天员训练中心


海盐人民医院-女兵体检标准


艾滋病宣传活动-廉洁文化进校园手抄报


七夕吃什么-昆虫记读后感


给爸爸妈妈的信-佛山中考网