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