C语言程序改错和标答不同,C语言程序设计试题及答案3

信息安全技术C语言练习题 总共46题共99分

一、单选题 (共20题,每题2分,共40分)

1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分)

A.switch(x)

{

case 1.0: printf("*");

case 2.0 printf("**");

}

B.switch((int)x)

{

case 1.0: printf("*");

case 2.0 printf("**");

}

C.switch(a+b)

{

case 1: printf("*");

case 2+1: printf("**");

}

D.switch(a+b)

{

case 1: printf("*")

case c: printf("**");

}

标准答案:C

2. 若有宏定义如下:

#define X 5

#define Y X+1

#define Z Y*X/2

则执行以下printf语句后,输出的结果是( )

int a; a=Y;

printf("%d",Z);

printf("%d",--a); (2分)

A.7,6 B.12,6 C.12,5 D.7,5

标准答案:D

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; }

main()

{ int a=5, b=7;

fun();

printf("%d%d", 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

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 D.无定值

标准答案:C

7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2分)

A.auto和static B.auto和register

C.register和static D.extern和register

标准答案:B

8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分)

A.地址传递

B.单向值传递

C.由实参传给形参,再由形参传回实参

D.传递方式由用户指定

标准答案:B

9. 以下函数值的类型是( )

fun ( float x )

{ float y;

y= 3*x-4;

return y;

} (2分)

A.int B.不确定 C.void D.float

标准答案:A

10. C语言规定函数的返回值的类型是由( ) (2分)

A.return语句中表达式类型决定

B.调用该函数时的主调函数类型决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型决定

标准答案:D

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;

printf("%d",a);

} (2分)

A.4 B.1 C.0 D.a无定值

标准答案:D

13. 若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是( ) (2分)

A.*p=&a;scanf("%ld",p);

B.p=(long *)malloc(8);scanf("%ld",p);

C.scanf("%ld",p=&a);

D.scanf("%ld",&a);

标准答案:A

14. 以下程序的输出结果是( )

#include

int a[3][3]={1,2,3,4,5,6,7,8,9,},*p;

main()

{p=(int *)malloc(sizeof(int));

f(p,a);

printf("%d",*p);

}

f(int *s,int p[][3])

{*s=p[1][1];} (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

18. 以下程序的输出结果是_____ B___。

main()

{

char cf[3][5]={"AAAA","BBB","CC"};

printf(""%s"",ch[1]);

} (2分)

A."AAAA" B. "BBB" C."BBBCC" D."CC"

标准答案:B

19. 以下程序的输出结果是_______。

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",t);

} (2分)

A.3 B.4 C.1 D.9

标准答案:B

20. 在下列变量中,()不是局部变量 (2分)

A.register类 B.外部static类

C.auto类 D.函数形参

标准答案:B

二、判断题 (共9题,每题1分,共9分)

1. C语言程序总是从main函数第一条可执行语句开始执行,在main函数结束。( ) (1分) ( ) 标准答案:正确

2. C语言中,函数调用时,只有当实参与其对应的形参同名时,才共占同一个存储单元。( ) (1分) ( ) 标准答案:错误

3. 在C语言中,函数的定义可以嵌套( ) (1分) ( )

标准答案:错误

4. C语言程序的变量必须先定义再使用() (1分) ( )

标准答案:正确

5. C语言认为名为Student和student的变量是不同变量 (1分) ( )

标准答案:正确

6. C语言中,字符常量可以用单引号或双引号括起来() (1分) ( )

标准答案:错误

7. 设一个C系统的float型有效数字是7位,则超过7位数的运算是不准确的() (1分) ( )

标准答案:正确

8. 设一个C系统的float型有效数字是7位,则超过7位数的运算是不准确的() (1分) ( )

标准答案:正确

9. C语言与其他高级语言一样具有结构化的控制语句() (1分) ( )

标准答案:正确

三、填空题 (共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);

3. 设有名为show.c的源程序 #include main (int argc,char *argv[])

{

while (--argc>0)

printf("%s%c",*++argv,argc>1? :);

}

它已生成名为show.exe的可执行程序。今若在DOS操作系统命令状态下输入如下命令行

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);

} (2分)

标准答案:1. n,m%n;

5. 执行下述程序的输出结果是____________

#include #define FMT "%x,%x"

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分)

标准答案: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++;

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;

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",CAL(FUN(3,5),FUN(4,5)));

} (2分)

标准答案:1. 29;

10. 执行下述程序的输出结果是15(1×3×5的值),请填空。

#include main( )

{

static int a[2] [3]={{1,2,3,},{4,5,6,}};

int m,*ptr;

ptr=________________________________;

m=(*ptr)*(*(ptr+2))*(*(ptr+4));

} (2分)

标准答案:1. a (或&a[0][0]);

四、读程序题 (共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",x,y,z);

}

2. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? (10分)

标准答案:main()

{

long f1,f2;

int i;

f1=f2=1;

for(i=1;i{ printf("%12ld %12ld",f1,f2);

if(i%2==0) printf("");/*控制输出,每行四个*/

f1=f1+f2; /*前两个月加起来赋值给第三个月*/

f2=f1+f2; /*前两个月加起来赋值给第三个月*/

} }

相关文章:

1.2017年1月自考中国近代史纲要试题及答案

2.2016-2017年期中考试试卷整合及答案

3.2017年生命安全考试试题答案

4.2017年高职单招面试题及答案

5.2017年诚信守诺知识竞赛试题及答案

6.2017年最新会计继续教育考试题库(含答案)

7.2017年会计继续教育考试试题及答案

8.教育法律法规试题及答案

9.2017年消费者权益保护法知识竞赛试题及答案

10.2016-2017一年级上册语文期末试卷及答案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值