对外经济贸易大学2002年考研C语言程序设计试题_-查字典考研网
 
请输入您要查询的关键词
  查字典考研网 >> 历年真题 >> 专业课试题 >> 对外经济贸易大学2002年考研C语言程序设计试题

对外经济贸易大学2002年考研C语言程序设计试题

考研时间: 2008-11-19 来源:查字典考研网

一、选择题

1.在C语言中,如果下面的变量都是int类型,则输出的结果是()

sum=pad=5;

pad=sum++,pad++,++pad;printf(“%d/n”,pad);

a.7 b.6 c.5 d.4

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

main()

{int i=010,j=10;

printf(“%d,%d/n”,++i,j——);}

a.11,10 b.9,10 c.010,9 d.10,9

3.已知在ASCII代码中,字母A的序号为65,以下程序的输出结果是()

main()

{ char c1=‘A’,c2=‘Y’;

printf(“%d,%d/n”,c1,c2);}

a.输出错误信息 b.65,90 c.A,Y d……65,89

4.执行以下语句,则c的二进制值是()

char a=3,b=6,,c;

c=a^b<<2;

a.00011011 b.00010100 c.00011100 d.00011000

5.已知:int a=5;执行下列语句后输出结果是()

if (a=0) printf(“%d”,a)

else printf(“%d”,2*a);

a.10 b.5c.0 d.语法错误

6.语句while(!E) 中的条件!E等价于()

a.E==0 b.E!=1 c.E!=0 d.~E

7.执行语句for(X=0,Y=0;(Y!=123)&&(X<4);X++);()

a.无限循环 b.循环次数不变 c.执行4次 d.执行3次

8.sizeof(double)是()

a.一种函数调用 b一个双精度型表达式 c.一个整形表达式 d.一个不合法的表达式

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

main()

{ char str[12]={‘s’,‘t’,‘r’,‘i’,‘n’,‘g’,‘/0’}

printf(“%d/n”,strlen(str));

}

a.12 b.11 c.7 d.6

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

main()

{ int a,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

printf(“%d,%d/n”,a,b);

}

a.6,1 b.2,1 c.6,0 d.2,0

11.C语言的运算符以运算对象的数目可以分为()

a.单目算符 b.单目算符和双目算符

c.单目,双目和三目算符 d. 单目,双目,三目和四目运算符

12.使用以下对二维数组的定义语句中,不正确的定义是()

a. int m[2][3]={{1},{2,3}}; b.int m[2][3]={1,2,3};

c. int m[2][3]={{1},{2},{3}}; d. int m[2][3]={1,{2,3}};

13.若定义a,b为整型变量,用scanf{“%d%d”,&a,&b};语句输入a,b的值时,不可以()作为输入的分割符。

a.,b.空格 c. 回车键 d.TAB键

14.若定义char *s=“car”; 则以下表达式的值不等于‘a’的是()

a.*++s; b.*(s+1) c.*s+1 d.s[1]

15.C语言程序中,若对函数的类型没有说明,则函数的默认类型是()

a.void b.int c.char d.single

16设有以下语句,则()不是对a数组元素的正确引用,其中0<=i<10

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

*p=a;

a.a[p-a] b.*(&a) c.p d.*(*(a+i))

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

union pw

{ int ji;

char ch[2];

}a;

main()

{ a.ch[0]=13;

a.ch[1]=0;

printf(“%d/n”,a.i);

}

a.13 b.14 c.208 d.209

18.以下程序执行时,从第一列开始输入2374<CR>,<CR>代表一个回车符。程序的输出结果是()

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

default: putchar(c+2);break;

}

printf(“/n”);

}

a.668977 b.668966 c.66778777 d.6688766

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

#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

20.根据以下语句 ,则()不是对库函数strcpy的正确调用

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

a.strcpy(str1,“HELLO”); b. strcpy(str2,“HELLO”);

c. strcpy(str3,“HELLO”) d. strcpy(str4,“HELLO”)

、阅读程序段,填写运行结果

1.下面程序段的运行结果是()

main()

{ int a=10,b=5,c=5,d=5;

int m=0,n=0,p=0;

for(;a<b;++b) m++;

while(a>++c) n++;

do p++;while(a>d++);

printf(“m=%d n=%d p=%d”,m,n,p);

}

2.下面程序段的运行结果是()

main()

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

p=func(k,m);

printf(“%d,”,p);

p=func(k,m);

printf(“%d,”,p);

}

func(a,b)

int a,b;

{ static int m=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

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

main()

{ int i;

for(i=1;i<=5;i++){

if(i%2) printf(“*”);

else continue;

printf(“#”);

}

printf(“$/n”);

}

4.下面程序的运行结果是()

main()

{ int x,a=1,b=2,c=0;

x=——a||b&&++c;

printf(“%d/n”,x);

}

5.下面程序的运行结果是()

#include<stdio.h>

struct s

{ int a;

int b:

}d[4]={1,20,3,40,5,60,7,80};

main()

{ struct s *p=d;

printf(“%d/n”,++p->a);

printf(“%d/n”,++p->b);

}

三、程序选择填空

以下程序名为cat.c,其功能是将命令行中所列的文件依次在屏幕上显示,每显示完一个文件内容后,用户按任意键,则显示下一个文件,如果命令行中所列的文件不能打开或没有给出文件名,则显示相应的信息,命令的格式为:cat filename1 filename2…

1) a.char b.int c.file d.FILE

2) a.fgetc(fptr) b.getchar(fptr) c.fgetc(fp) d.getchar(fp)

3) argc=1 b.argc==1 c.argc<1 d.argc==1

4) a.&pf b.*fp c.argv d.fp

5) a.fclose(argv) b.rewind(argv) c.fclose(fp) d.rewind(fp)

#include “stdio.h”

void cat (「1」 *fptr)

{ int c;

while((c=「2」)!=EOF)

putchar?;

}

main(argc,argv)

int argc;

char *argv[];

{FILE *fp;

int i;

if(「3」)

{ printf(“缺少参数/n”); exit(0);}

for(i=1;i<argc;i++)

{ if((fp=fopen(argv,“r”))==NULL)

printf(“%s 无法打开 /n”,argv);

else{

printf(“/*文件:%s*//n”,argv);

cat(「4」);}

「5」;

printf(“按任意键显示下一个文件/n”);

getchar();

}

}

四、程序填空

1.函数fun(char *s,int a)的功能是采用递归的方法将16进制的字符串s转换成10进制整数作为函数的返回值,若字符串s不是16进制的字符串,则函数的返回值是-1,a的初值是0.

fun(char *s,int a)

{ int i;

if(「1」)

i=*s-‘0’;

else

if(*s>=‘A’&&*s<=‘F’)

「2」;

else

if(*s>=‘a’&&*s<=‘f’)

「3」;

else

「4」;

a=a*16+I;

if(*(s+1)!=‘/0’)

fun(「5」);

else

return(a);

}

2.以下程序找出二维数组a中每行的最大值,并按一一对应的顺序放入一维数组s中。即:第零行中最大值,放入s[0]中,第一行中最大值,放入s[1]中……。然后输出每行行号和最大值,请填空。

#define 「6」 10

main()

{

int a[M][M],s[M],i,j,k;

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

for(j=0;j<M;j++)

scanf(“%d”,*(a+i)+j);

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

{ *(s+i)= 「7」;

for(j=1;j<M;j++)

if(*(s+i) 「8」*(*(a+i)+j))

*(s+i)= 「9」;

}

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

{ printf(“Row=%2d Max=%5d”, 「10」);

printf(“/n”);

}

}

3. 函数htmtotxt的功能是将html文件中的htm标记过滤掉,即过滤掉在<…。> 之间的内容,将其他内容形成一个纯文本文件。函数的参数f1为现有的html文件名,参数f2为形成的纯文本文件名。注意,在html文件中出现<br>,<BR>标记时,应向文本文件中添加一个回车符。

void htmtotxt(char *f1,char *f2)

{

FILE *fin,*fout;

char sc,*s1,*p1;

int flag;

s1=(char *)malloc(MAX);

p1=s1;

/*打开输入输出文件*/

if((fin=fopen(f1,“r”))==NULL)

{

printf(“File %s open error!/n”,f1);

return;

}

if((fout=fopen(f2, 「11」)==NULL)

{

printf(“File %s open error!/n”,f2);

return;

}

/*从htm文件中读取内容,过滤htm标记中的内容,然后将其他内容写入文本文件中*/

flag=0;

while(!feof(fin))

{

sc=「12」;

if(sc==‘<’)

{

s1=p1;

*s1++=sc;

while((sc=fgetc(fin))!=‘>’&&!feof(fin))

{ *s1=「13」; s1++;}

flag=1;

}

if(flag==1)

{

*s1++=sc;

*s1=‘/0’;

if(「14」)

{

fputc(‘/n’,fout);

flag=0;

continue;

}

}

flag=0;

fputc(sc,fout);}

「15」;

fclose(fout);

}

五、编写程序

1.请编写函数huiwen(char *s),它的功能是检查字符串s是否是回文,所谓回文即正向,反向的拼写都一样。如a,eye,ABBA等,当字符串s是回文时,函数的返回值是1,否则返回值是0.

void huiwen(char *s)

{ /*答案开始*/

/*答案结束*/

}

2.请编写函数void fun(int *a,int y,int n),它的功能是:把y值插入到a数组中,a数组中的数由主函数按由小到大的次序从键盘读入,y是要插入的数,其值也从键盘读入。n是a中数字的个数(n<S)。要求插入后,数组中的数仍然有序。下面的主函数部分的程序略,不需要编写,考生只需要完成函数fun的编程。

#define S 50

main()

{

int a[S],b,c;

……

fun(a,b,c)

……

}

void fun(int *a,int y,int n)

{ /*答案开始*/

……

……

/*答案结束*/

}

请点击查看更多对外经济贸易大学考研相关信息>>>

相关链接:对外经济贸易大学历年考研专业课试题汇总

点击显示
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读

当前热点关注

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •