哈工大C语言秋试题xueyr.docx

上传人:b****8 文档编号:9640086 上传时间:2023-02-05 格式:DOCX 页数:9 大小:107.10KB
下载 相关 举报
哈工大C语言秋试题xueyr.docx_第1页
第1页 / 共9页
哈工大C语言秋试题xueyr.docx_第2页
第2页 / 共9页
哈工大C语言秋试题xueyr.docx_第3页
第3页 / 共9页
哈工大C语言秋试题xueyr.docx_第4页
第4页 / 共9页
哈工大C语言秋试题xueyr.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

哈工大C语言秋试题xueyr.docx

《哈工大C语言秋试题xueyr.docx》由会员分享,可在线阅读,更多相关《哈工大C语言秋试题xueyr.docx(9页珍藏版)》请在冰豆网上搜索。

哈工大C语言秋试题xueyr.docx

哈工大C语言秋试题xueyr

本次考试为开卷考试,卷面100分,折合为50分计入期末成绩。

如此卷为补考试卷,则按卷面分数记入补考成绩。

如无特殊说明,所有题目都针对标准C,并假设运行环境是32位的x86计算机,WindowsXP操作系统。

一、单项选择题(共10分,每小题2分)

(1)下列不是C语言的关键字的是:

()

A.sizeofB.freeC.signedD.auto

(2)下列说法中不属于数据类型定义的作用的是:

()

A.决定数据存储内存的大小B.决定如何解释内存中的位

C.决定数据可以执行的运算D.决定以何种方式输出数据

(3)与if(x=0)等价的语句是:

()

A.if(0)B.if(x==0)C.if(x!

=1)D.if(x)

(4)关于函数的下列说法正确的是:

()

A.函数内部可以改变实参的值B.函数可以有多个返回值

C.函数调用时将实参的值赋给形参D.函数可以返回其内部变量的地址

(5)已知:

structNode

{

intdata;

structNode*next;

}a,b;

则下列赋值语句正确的为:

()

A.a.next=bB.a->next=bC.a->next=&bD.a.next=&b

 

二、写出程序的执行结果(共40分,每小题4分)

(1)写出下面程序的执行结果。

#include

main()

{

printf("%d",(1-(10+8/6)*7%4*4)/3);

}

(2)假设输入为“Goodboy,goon!

”,写出下面程序的执行结果。

#include

main()

{

charch;

scanf("%c",&ch);

for(ch='$';ch!

='g';scanf("%c",&ch))

putchar(ch);

}

(3)写出下面程序的执行结果。

#include

main()

{

intk;

for(k=1,printf("%d:

Hi!

\n",k);

printf("k=%d\n",k),k*k<18;

k+=2,printf("Nowkis%d\n",k))

printf("kis%dintheloop\n",k);

}

(4)写出下面程序的执行结果。

#include

#defineMAX(A,B)(A>B)?

A:

B

main()

{

printf("%d\n",MAX(12+3,3*4)+5);

}

(5)写出下面程序的执行结果。

#include

main()

{

inti=20;

while(i++<=65)

{

if(i%20==0)

printf("%ddiv20\n",i);

if(i=65)

printf("%d,end\n",i);

}

}

(6)写出下面程序的执行结果。

#include

main()

{

inta=3,b=2,c=1;

if(a>b)

if(a>c)

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

else

printf("%d\n",b);

else

printf("%d\n",c);

}

(7)写出下面程序的执行结果。

#include

inta[100];

voidfunc(intb[100])

{

printf("%d\n",sizeof(a));

}

main()

{

printf("%d\n",sizeof(a));

func(a);

}

(8)写出下面程序的执行结果。

#include

#include

main()

{

charfood[]="Bread";

char*p;

p=food+strlen(food);

while(--p>=food)

puts(p);

}

(9)写出下面程序的执行结果。

#include

structtree

{

intx;

inty;

}t;

voidfunc(structtreet)

{

t.x=10;

t.y=20;

}

main()

{

t.x=1;

t.y=2;

func(t);

printf("%d%d\n",t.x,t.y);

}

(10)写出下面程序的执行结果。

#include

voidprint(char*str)

{

char*p;

for(p=str;*p!

='\0';p++)

{

if(*p=='a'||*p=='e')

putchar(*p);

else

putchar((*p)--);

}

putchar('\n');

}

main()

{

charstr[]="gameover";

print(str);

print(str);

}

三、改错题(10分)

下面程序统计文件中英文字母个数,文件名通过命令行输入。

请找到并改正其中的任意五行错误或不当的代码,不改正不得分(可以在题目上直接改)。

#include

#include

intmain(intargc,char**argv)

{

charfilename[20];

filename=argv[0];

int*fp=fopen(filename,'wb');

intch;

intcount;

while(ch=fgetc(fp)!

=EOF);

{

if('A'<=ch>='z')

count++;

}

printf("%dletters\n",count);

fclose(filename);

return0;

}

四、程序设计(40分,每小题10分,注意代码风格)。

(1)编写一个程序,读取一系列整数,直到输入0。

输入终止后,程序打印输入的非素数的个数以及这些数的平均值;

(2)生成含有n个随机整数的数组a,其中n为用户输入的大于0的整数,每个元素a[i]满足1

然后使用qsort函数对数组a根据每个元素十位上的大小进行由大到小的排序,并将结果输出,如果十位上的数相同,则顺序任意。

(3)打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。

例如:

153是一个“水仙花数”,因为153=13+33+53。

(4)

双(向)链表中有两条方向不同的链,即每个结点中除next域存放后继结点地址外,还增加一个指向其直接前趋的指针域prior,其结构定义如下:

typedefstructDNode

{

intdata;

structDNode*prior,*next;

}DListNode;

实现函数voidDInsertBefore(DListNode*P,intX),在结点P前面插入数据为X的结点S(如图所示)。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1