文档视界 最新最全的文档下载
当前位置:文档视界 › 最新专升本考试C语言模拟试题及参考答案

最新专升本考试C语言模拟试题及参考答案

以下程序的输出结果是【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); }

【38】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); }

【39】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); }

【40】A) 8,17 B) 8,16 C) 8,20 D) 8,8

设有以下语句:

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

*strp[4];

int i;

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

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

【41】A) strp B) str[k] C) strp[k] D) *strp

设有以下语句:

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

则【42】不是对库函数strcpy的正确调用,此库函数用业复制字符串。【42】A) strcpy(str1,"HELLO1"); B) strcpy(str2,"HELLO2");

C) strcpy(str3,"HELLO3"); D) strcpy(str4,"HELLO4");

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

【43】A)自动(auto) B)静态(static) C)寄存器(register) D)外部(extern) 设有以下语句:

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

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

p=&a[0];

则表达式【44】的值是6。

【44】A)p + + ->n B) p->n + + C) (*p).n + + D) + + p->n 以下四个程序中,【45】不能对两个整型变量的值进行交换。【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】结构.选择结构和循环结构。

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

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

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

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

设当前盘为C盘,删除B盘FOX子目录中扩展名为.TXT的所有文件的命令是【6】。十进制数53转换为十六进制数为【7】。

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

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

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

以下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); }

以下程序中的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); }

以下程序求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】; }

以下程序调用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"); }

以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-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();}

[完]

C语言参考答案

选择题([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

相关文档