C语言程序设计考试复习资料整理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
若在函数中有语句 float b=3.6 , area ; area=S(b) ;则 area 的值是(D ) A 3.6 B 3.14 C 11.304 D 40.6944
44、有 int *P ;刚下面语句正确的是:( )
A p=(int *)malloc(sizeof(int)); B p=malloc(int);

13、若有 int a[3]={120,212,320};则 a+2 是 a[2] 的地址。
15、在一个函数中有定义 int x=233,*p=&x ; 执行*p=*p +15;后,x 的值为
248

16、执行语句“for(s=0,j=5 ;j<=25 ;j=j+5) s=s+ j ;”后,变量 s 的值
C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
7 以下说法中正确的是( C)
A)C 语言程序总是从第一个函数开始执行
B)在 C 语言程序中,要调用的函数必须在 main()函数中定义
C)C 语言程序总是从 main()函数开始执行
D)C 语言程序中的 main()函数必须放在程序的开始部分
C p=int *malloc(sizeof(int));
D p= malloc(sizeof(int))
45、在定义 int a[5][4];对数组元素的正确引用是( )
A a[5][1] B a[2][4] C a[4][3] D a[1,1]
46、在说明语句中有:float (*fp)( );则 fp 代表的是:( )
11 两次运行下面的程序,如果从键盘上分别输入 6 和 4,则输出结果是( C)
main()
{int x;
scanf(“%d”,&x);
if(x>5) printf(“%d”,++x);
else printf(“%d”,x--);
}
Hale Waihona Puke Baidu
A)7 和 5 B)6 和 3 C)7 和 4 D)6 和 4
19 若有说明:int i,j=7,*p=&i;,则与 i=j;等价的语句是( B)
D)char b[10]=“Hello!”
24 在下列选项中,没有构成死循环的程序段是(D)
A) int i =100;
whine(1)
{i=i%3;
if (i>100)break;
}
B) for (;;);
C) int k=1000;
do {k++;} while(k<1000);
D) int s=36;
C 程序设计考试复习题资料整理
一 填空题:
1、在 C 语言中,一个函数的函数体一般由 声明 、 执行 两部分
组成。
2、在 C 语言中,符号常量是在一个程序中指定的用名字代表的常量,定义符号
常量一般用
命令,定义一个符号常量 PI,其值为 3.14159,格
式是 #indefine PI 3.14159 。
16、若有以下定义和语句:int a,b,c;scanf(“a=%db=%dc=%d”,&a,&b,&c);
为了使 1, 3,2 分别赋给 a,b,c,从键盘上输入数据的正确形式是( )
A 1 3 2 B 1,3,2 C a=1b=3c=2 D a=1,b=3,c=2
26、C 语言规定数组名做实参时,它和对应形参之间的数据传递方式是:( )
20、C 语言中调用 fopen 函数打开文件,调用 fclose 函数关闭文件,调用 fseek 函
数可实现文件的随机读写。
21 、 用 条 件 运 算 符 写 出 求 三 个 数 x , y,z 最 大 者 的 表 达 式 max =
a>b?a:c>c?c:a

22、写一个带参数的宏定义,宏名是 S,参数是 a,b,宏体是 a*b,格式:
a[k]=k+k; 0,2,4,6,8 } fun2() {
int a[MAX],k; for(k=0;k<5;k++)
a[k]=k; 0,1,2,3,4 } fun3() {
int k; for(k=0;k<MAX;k++)
printf("%d",*(a+k)): }
(6) 以下程序运行后,输出结果是 ________ main () {
三、 阅读程序题 (1) 阅读下列程序: #include<stdio.h>
main() {
int i, j, row, column,m; static int array[3][3]={{100,200,300},{28,72,-30},{-850,2,6}}; m=array[0][0]; for (i=0; i<3; i++)
long fun5(int n) { long s;
if((n==1)||(n==2)) s=2;
else s=n+fun5(n-1); return(s); } main() { long x; x=fun5(4); printf("%ld\n",x); } (5) 下面程序的输出是_0246802468______。 #define MAX 5 int a[MAX],k; main() { fun1();fun3();02468 fun2(); fun3();02468 printf("\n"); } fun1() { for(k=0;k<MAX;k++)
for(j=0;j<3;j++) {
if (j%2) continue; x++; } x++; } printf("x=%d\n",x); }
(8) 以下程序的输出结果是_4211______ main( ) {
char *s="12134211"; int v[4]={0,0,0,0},k,i; for(k=0;s[k]!=’\0’;k++) {
为 75

17、函数形式参数的作用域是
本函数内

18、设有以下宏定义,则执行赋值语句 a=PP*20;(a 为 int 型变量)后,a 的值是
1140 。
#define PR 80
#define PP PR+403
19、设 x 的值为 15,n 的值为 2,则表达式 x%=(n+=3)运算后,x 的值为 0 。
7、若有说明 int i,j,k;则表达式 i=10,j=20,k=30,k*=i+j 的值为
___900____________。
8、定义一个长度为 20 的整形一维数组 a ,且前 4 个元素的初值为 6,12,18,
24,定义的格式为:
int a[20]={6,12,18,24}

9、结构化程序设计的三种基本结构是顺序结构、选择结构和 循环结
46、若有说明:int i,j=7,*p=&j;,则与 i=j;等价的语句是( ) A i=*P; B *P=j; C i=&j; D i=**p;
47、设有宏定义 #dedine pi 3.14 和 #dedine S(r) pi*r*r 若在函数中有语句 float b=3.6 , area ; area=S(b) ;则 area 的值是( ) A 3.6 B 3.14 C 11.304 D 40.6944
for (j=0; j<3; i++) if (array[i][j]<m) { m=array[i][j]; row=i; column=j; } printf("%d,%d,%d\n",m,row,column);
} 上述程序的输出结果是 __-850,2,0_______ 。
(4) 下面程序的输出是__4+3+2________ 。
while (s) --s;
32 以下数组定义中不正确的是(D)
A) int a[2][3]; B) int b[][3]={0,1,2,3}; C) int c[100][100]={0}; D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}}; 37、设有宏定义 #dedine pi 3.14 和 #dedine S(r) pi*r*r
A)i=*P; B)*P=j; C)i=&j; D)i=**p;
20 不能把字符串: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!”);
A) % B)\C) %和\ D) *
3 为表示关系 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)
4 下述对 C 语言字符数组的描述中错误的是(C)
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入、输出
41、C 语言规定数组名做实参时,它和对应形参之间的数据传递方式是:( ) A 单向值传递 B 无传递 C 地址传递 D 用户指定传递方式
42、在 C 程序中可以作为变量名的合法标识符是( ) A 100 B a+b C while D score
45、循环语句 for(a=0,b=69;b>=66;a++,b--)x=a+b;的循环次数是( ) A 4 次 B 3 次 C 8 次 D 1 次也不执行
int y=18,i=0,j,a[8]; do {
a[i]=y%2;i++; y=y/2; } while(y>=1); for(j=i-1;j>0;j--) printf(%d",a[j]); printf(" \n"); }
(7) 以下程序的输出结果是 __x=_8_____ main() {
int i,j,x=0; for (i=0;i<2;i++) { x++;
#define s(a,b) a*b

23、设整型变量 X=10,Y=30,Z=800,执行 Z /=Y+X 后,Z = 20

二、选择题 1 C 语言中最简单的数据类型包括(B)
A)整型、实型、逻辑型 B)整型、实型、字符型
C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型
2 C 语言中,运算对象必须是整型数的运算符是(A)
3、用 条 件 运 算 符 写 出 求 两 个 数 a , b 大 者 的 表 达 式 max =
a>b?a:b

4、表达式 98&&8&&31&1 的值为______1__________。
5、表达式 (int)(20+2.5*3+6+5.3) 的值是 38

6、printf("%5.3f\n",123456.12345);输出为____2345.123_____。
switch(s[k]) {
case '1':i=0;break; case '2':i=1;break; case '3':i=2;break; case '4':i=3; } v[i]++; } for(k=0;k<4;k++) printf("%d ",v[k]); } (12) 以下程序的运行结果是 ___8,17_______ #include <stdio.h> main( ) { int k=4, m=1, p; p=func(k,m); printf("%d,",p);8 p=func(k,m); printf("%d \n",p);17 } func(int a, int b) { static int m=0, i=2; i+=m+1;3 3+8+1 12 m=i+a+b;8 12+4+1 return m; }
A 单向值传递 B 无传递 C 地址传递 D 用户指定传递方式
27、在 C 程序中可以作为变量名的合法标识符是( )
A 100 B a+b C while D score
28、循环语句 for(a=0,b=69;b>=66;a++,b--)x=a+b;的循环次数是( )
A 4 次 B 3 次 C 8 次 D 1 次也不执行


10、C 语言中解决嵌套 if 语句的 else 问题使用最近匹配原则,即规定_ELSE 与
它上面最近的 IF 配对_______。
11、设 int 类型数据长度为 2 字节,则 unsigned int 类型数据的取值范围是
0~65535 。
12、设 a=1,b=5,c=55,表达式!(b>c)+(b!=a)||(a+b)&&(b<c)的值 1
A 一个用于指向一维数组的行指针; B 一个返回值为实型的函数名;
C 一个用于指向函数的指针变量; D 一个指向实型数据的指针;
15、C 语言中函数的返回值的类型是由( )决定的
A 调用该函数的主调函数类型; B return 语句中的表达式类型;
C 调用函数时指定;
D 定义函数时所指定的返回值类型。
相关文档
最新文档