c语言invert试题,计算机考试C语言笔试试题附答案

计算机考试C语言笔试试题附答案

{ int a[10] , i , k ;

for ( i=0 ; i<10 ; i + + ) scanf("%d",&a[i]);

findmax ( a,10,&k );

printf ( "%d,%d\n" , k , a[k] ); }

A.k=p

B.*k=p-s

C.k=p-s

D.*k=p

(35) 有以下程序:

#include

union pw

{ int i; char ch[2]; } a;

main()

{ a.ch[0]=13; a.ch[1]=0; printf("%d\n",a.i); }

程序的输出结果是 (  ) 。(注意: ch[0]在低字节,ch[1]在高字节。)

A.13

B.14

C.208

D.209

(36) 有以下程序:

# include

main()

{ int c;

while((c=getchar())!=’\n’)

{ switch(c-’2’)

{ case 0:

case 1: putchar(c+4);

case 2: putchar(c+4);break;

case 3: putchar(c+3);

case 4: putchar(c+2);break; } }

printf("\n"); }

从第一列开始输入以下数据,代表一个回车符。

2743

程序的输出结果是 (  ) 。

A.668977

B.668966

C.6677877

D.6688766

(37) 以下程序的输出结果为 (  ) 。

main()

{ char *alpha[6]={"ABCD","IJKL","MNOP","QRST","UVWX"};

char **p; int i;

p=alpha;

for(i=0;i<4;i + + ) printf("%s",p[i]); printf("\n"); }

A.ABCDEFGHIJKL

B.ABCD

C.ABCDEFGHIJKLMNOP

D.AEIM

(38) 以下程序的输出结果是 (  ) 。

# include

# define FUDGE(y) 2.84+y

# define PR(

A.printf("%d",(int)(

A.)

# define PRINT1(

A.PR(

A.;putchar(’\n’)

main()

{int x=2; PRINT1(FUDGE(5)*x); }

A.11

B.12

C.13

D.15

(39) 以下程序的输出结果是 (  ) 。

# include

main()

{ int i=1,j=3;

printf("%d",i + + );

{ int i=0; i+=j*2; printf("%d,%d",i,j); }

printf("%d,%d\n",i,j); }

A.1,6,3,1,3

B.1,6,3,2,3

C.1,6,3,6,3

D.1,7,3,2,3

(40) 以下程序的输出结果是 (  ) 。

# include

main()

{ int k=4,m=1,p;

p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p);}

func(a,

B.

int a,b;

{ static int m=0,i=2;

i+=m+1; m=i+a+b; return(m); }

A.8,17

B.8,16

C.8,20

D.8,8

(41) 设有以下语句:

char str[4][12]={"aaa","bbbb","ccccc","dddddd"},

*strp[4];

int i;

for(i=0;i<4;i + + )strp[i]=str[i];

(  )不是对字符串的正确引用,其中0≤k<4。

A.strp

B.str[k]

C.strp[k]

D.*strp

(42) 设有以下语句:

char str1[]="string",str2[8],*str3,*str4="string";

则 (  ) 不是对库函数strcpy的正确调用,此库函数用业复制字符串。

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

(43) C语言中形参的缺省存储类别是 (  ) 。

A.自动(auto)

B.静态(statiC)

C.寄存器(register)

D.外部(extern)

(44) 设有以下语句:

struct st {int n; struct st *next;};

static struct st a[3]={5,&a[1],7,&a[2],9,’\0’},*p;

p=&a[0];

则表达式 (  ) 的值是6。

A.p + + ->n

B.p->n + +

C.(*p).n + +

D.+ + p->n

(45) 以下四个程序中, (  ) 不能对两个整型变量的值进行交换。

A.# include

main()

{ int a=10,b=20; swap(&a,&

B.;

printf("%d %d\n",a,

B.;

}

swap(p,q)

int *p,*q;

{

int *t;

t=(int )malloc(sizeof(int));

t=p;*p=*q;*q=*t; }

B.# include

main()

{

int a=10,b=20;

swap(&a,&

B.;

printf("%d %d\n",a,

B.;

}

swap(p,q)

int p,q;

{

int *t;

t=*p;*p=*q;*q=t;

}

C.# include

main()

{

int *a,*b;

*a=10,*b=20;

swap(a,

B.;

printf("%d %d\n",*a,*

B.;

}

swap(p,q)

int *p,*q;

{

int t;

t=*p;*p=*q;*q=t;

}

D.# include

main()

{

int a=10,b=20;

int x=&a,y=&b;

swap(x,y);

printf("%d %d\n",a,

B.;

}

swap(p,q)

int *p,*q;

{

int t;

t=*p;*p=*q;*q=t;

}

二、填空题(每空2分,共40分)

请将每空的正确答案写在答题卡1-20序号后的横线上,答在试卷上不得分。

(1) 结构化程序设计所规定的三种基本控制结构是 【1】 结构.选择结构和循环结构。

(2) 在七位ASCII码中,除了表示数字、英文大小写字母外,还有 【2】 个其它符号。

(3) 把B盘BAS子目录下第三个字符为A,且没有扩展名的全部文件拷贝到C盘ABC子目录下的命令是 【3】 。

(4) 微机中ROM的中文意义是 【4】 存储器。

(5) 启动MS-DOS系统后,能自动执行的批处理文件是 【5】 .BAT。

(6) 设当前盘为C盘,删除B盘FOX子目录中扩展名为.TXT的所有文件的命令是 【6】 。

(7) 十进制数53转换为十六进制数为 【7】 。

(8) 数据库管理系统常见的数据模型有层次、网状和 【8】 三种。

(9) 买来一张新盘后,在存入文件前,必须进行 【9】 处理。

(10) 在微机中,字符的比较就是对它们的 【10】 码进行比较。

(11) 以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。

#include

main(argc,argv)

int argc; char *argv[];

{ FILE *f1,*f2; char ch;

if(argc< 【11】 )

{ printf("Parameters missing!\n"); exit(0); }

if( ((f1=fopen(argv[1],"r")) = = NULL)||((f2=fopen(argv[2],"w")) = = NULL))

{ printf("Can not open file!\n"); exit(0);}

while( 【12】 )fputc(fgetc(f1),f2);

fclose(f1); fclose(f2); }

(12) 以下程序中的trap函数是一个用梯形法求定积分的通用函数。梯形法求定积分的公式为:

n-1 a-b

s=((f(a)+f(b))/2+∑ f(a+i*h))*h , h=|----|

i=1 n

其中,n为积分小区间数。以下程序调用trap函数求定积分,被积函数是:

f(x)=x*x+3*x+2,且n=1000,a=0,b=4。

#include

3include

double trap(fun,a,b)

double (*fun)(),a,b;

{ double t,h;

int i,n=1000;

t=0.5*((*fun)(a)+(*fun)(b)); h=fabs(a-b)/(double)(n);

for(i=1;i<=n-1;i + + ) t=t+ 【13】 ;

t=t*h; return(t); }

double mypoly(x)

double x;

{ return(x*x+3.0*x+2.0); }

main()

{ double y,(*pf)(); pf= 【14】 ;

y=trap(pf,0.0,4.0); printf("%f\n",y); }

(13) 以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。

#include

main()

{ int i,a[10],*p=a,sum=0;

printf("Enter 10 num:\n");

for(i=0;i<10;i + + ) scanf("%d",&a[i]);

for(i=0;i<10;i + + )

if(isprime(*(p+ 【15】 )) = = 1){ printf("%d",*(a+i)); sum+=*(a+i); }

printf("\nThe sum=%d\n",sum); }

isprime(x)

int x;

{ int i; for(i=2;i<=x/2;i + + )

if(x%i = = 0) return (0); 【16】 ; }

(14) 以下程序调用invert函数按逆序重新放置a数组中元素的值。a数组中的值在main函数中读入。

#include

#define N 10

invert(s,i,j)

int *s,i,j;

{ int t; if(i  main()

{ int a[N],i;

for(i=0;i   invert(a,0,N-1);

for(i=0;i   printf("\n"); }

(15) 以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data 域不放数据,表空的条件是ph->next = = NULL).

#include

struct list { int data;struct list *next;};

【19】 creatlist()

{ struct list *p,*q,*ph; int a;

ph=(struct list *) malloc(sizeof(struct list));

p=q=ph; printf("Input an integer number,enter –1 to end:\n");

scanf("%d",&a):

while(a!=-1)

{ p=(struct list *)malloc(sizeof(struct list));

p->data=a; q->next=p; 【20】 =p; scanf("%d",&a); }

p->next=’\0’; return(ph); }

main()

{ struct list *head; head=creatlist();}

参考答案

选择题([1]——[30]每个选项1分,[31]——[45]每个选项2分,共60分)

(1)B (2)B (3)B (4)A (5)C (6)D (7)B (8)C (9)A (10)C

(11)C (12)B (13)D (14)B (15)C (16)A (17)B (18)B (19)A (20)C

(21)D (22)C (23)A (24)C (25)C (26)D (27)A (28)D (29)B (30)A

(31)C (32)D (33)C (34)D (35)A (36)A (37)C (38)B (39)B (40)A

(41)A (42)C (43)A (44)D (45)C

二` 填空题(每空2分,共40分)

(1)顺序

(2)66

(3) COPY B:\BAS\??A*.C:\ABC(或COPY B:\BAS\??A*.,C:\ABC)

(4)只读

(5)AUTOEXEC

(6)DEL B:\FOX\*.TXT

(7)35

(8)关系

(9)格式化(或初始化、FORMAT)

(10)ASCII

(11)3

(12)!feof(f1)或feof(f1)==0

(13)(*fun)(a+i*h)

(14) mypoly

(15)I

(16)return 1 或 return (1)

(17)i+1

(18) I

(19) struct list *

(20) q

【计算机考试C语言笔试试题附答案】相关文章:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值