C语言程序设计试题及答案3
- 格式:pdf
- 大小:173.30 KB
- 文档页数:10
D.7,5
3. 下面的符号常量定义中,正确的是 ( ) (2分)
A.#define PI 3.14; B.#include PI 3.14;
C.#define PI=3.14
D.#define PI 3.14
.标准答案:D
4. 以下程序的输出结果是( )
int a, b;
void fun()
{ a=100; b=200; }
.标准答案:1. B,6;
6. 函数func的功能是将整型变量x的值转换成二进制数,并将该二进制 数的每一位存入由整型指针b所指向的一维数组a,最低位存放于a[0]中, 次低位存放于a[1]中,依此类推。请填空。 void func(int x,int *b) { int r; do { r=x%2; ________________= r; x/=2; } while (x); } (2分) .标准答案:1. *b++;
6. 以下程序的输出结果是( )
fun(int x, int y, int z)
{ z=x*x+y*y; }
main()
{ int a=31;
fun(5,2,a);
printf("%d",a);
} (2分)
A.0
B.29
C.31
.标准答案:C
D.无定值
7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2
A.1
B.4
C.7
D.5
.标准答案:D
15. 设已有定义: char *st="how are you"; 下列程序段中不正确的是( ) (2 分) A.char a[12], *p; strcpy(p=a+1,&st[4]); B.char a[12]; strcpy(++a, st); C.char a[12]; strcpy(a, st); D.char a[12], *p; strcpy(p=&a[1],st+2); .标准答案:B
3. 在C语言中,函数的定义可以嵌套( ) (1分) ( ) .标准答案:错误
4. C语言程序的变量必须先定义再使用(源自 (1分) ( ) .标准答案:正确
5. C语言认为名为Student和student的变量是不同变量 (1分) ( ) .标准答案:正确
6. C语言中,字符常量可以用单引号或双引号括起来() (1分) ( ) .标准答案:错误
11. 若有说明:int i,j=7, *p=&i; 则与i=j;等价的语句是( ) (2分) A.i= *P; B.*p=*&j; C.i=&j; D.i=* *p; .标准答案:B
12. 以下程序执行后a的值是( )
main()
{ int a,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
main()
{
int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i for(j=i;j printf("%d\n",t);
} (2分)
A.3
B.4
C.1
D.9
.标准答案:B
20. 在下列变量中,()不是局部变量 (2分)
A.register类
B.外部static类
四、读程序题 (共5题,每题2分,共10分)
五、程序设计题 (共2题,每题10分,共20分)
1. 输入三个整数x,y,z,请把这三个数由小到大输出。 (10分)
标准答案:main() { int x,y,z,t; scanf("%d%d%d",&x,&y,&z); if (x>y){t=x;x=y;y=t;} /*交换x,y的值*/ if(x>z){t=z;z=x;x=t;}/*交换x,z的值*/ if(y>z){t=y;y=z;z=t;}/*交换z,y的值*/ printf("small to big: %d %d %d\n",x,y,z); }
8. strlen(”apple”)的值为____,strcmp(”a”,”A”)的值为____. (2分) .标准答案:1. 5;2. 1;
9. 执行下述程序后,输出结果为________ #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() { printf("%d\n",CAL(FUN(3,5),FUN(4,5))); } (2分)
} (2分) .标准答案:1. n,m%n;
5. 执行下述程序的输出结果是____________ #include #define FMT "%x,%x\n" main() { static int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; printf(FMT,a[2][2],*(*(a+1)+1)); } (2分)
分)
A.auto和static
B.auto和register
C.register和static
D.extern和register
.标准答案:B
8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递 方式是( ) (2分) A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回实参 D.传递方式由用户指定 .标准答案:B
7. 设一个C系统的float型有效数字是7位,则超过7位数的运算是不准确 的() (1分) ( ) .标准答案:正确
8. 设一个C系统的float型有效数字是7位,则超过7位数的运算是不准确 的() (1分) ( ) .标准答案:正确
9. C语言与其他高级语言一样具有结构化的控制语句() (1分) ( ) .标准答案:正确
下输入如下命令行 show How are you?
则在显示屏上的输出结果是 ________________________________________________ (2分) .标准答案:1. How are you?;
4. 下面是求两个正整数m、n最大公因子的递归函数定义,请填空。 int gcd(int m,int n) { int c; if (n==0) c=m; else c=gcd(____________________); return (c);
main()
{ int a=5, b=7;
fun();
printf("%d%d \n", a,b);
} (2分)
A.100200 B.57
C.200100 D.75
.标准答案:D
5. 若有以下调用语句,则不正确的fun函数的首部是( ) main() {… int a[50],n; … fun(n, &a[9]); … } (2分) A.void fun(int m, int x[]) B.void fun(int s, int h[41]) C.void fun(int p, int *s) D.void fun(int n, int a) .标准答案:D
18. 以下程序的输出结果是_____ B___。 main() { char cf[3][5]={"AAAA","BBB","CC"}; printf("\"%s\"\n",ch[1]); } (2分) A."AAAA" B. "BBB" C."BBBCC" .标准答案:B
D."CC"
19. 以下程序的输出结果是_______。
2. 若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2 则执行以下printf语句后,输出的结果是( ) int a; a=Y;
printf("%d\n",Z); printf("%d",--a); (2分) A.7,6 B.12,6 C.12,5 .标准答案:D
三、填空题 (共10题,每题2分,共20分)
1. 枚举类型中的每个枚举值都是一个________________,它的值为一个
________________ (2分) .标准答案:1. 枚举常量;2. 整数;
2. 下述函数定义的功能是:把两个整数指针所指的存储单元中的内容进 行交换。请填空。 void exchange(________________________________________________________________ { int t; t=*y; *y=*x; *x=t; } (2分) .标准答案:1. int *x,int *y(或者int*y,int*x);
7. 若有以下定义和说明,则结构体变量w在内存中所占的字节数是 ________。 union aa { float x; float y; char c[6]; }; struct st
{ union aa v; float w[5]; double ave; } w; (2分) .标准答案:1. 34;
3. 设有名为show.c的源程序 #include main (int argc,char *argv[]) { while (--argc>0) printf("%s%c",*++argv,argc>1?' ':'\n'); } 它已生成名为show.exe的可执行程序。今若在DOS操作系统命令状态