哈尔滨工业大学C语言期末试卷(2007秋季笔试B卷)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

哈尔滨工业大学C语言期末试卷(2007秋季笔试B卷)

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

1.在下面的语句中:只有一个在功能上与其他三个语句不等价(其中s1和s2表示某个C语句),这个不等价的语句是。

A)if (a) s1; else s2;

B)if (!a) s2; else s1;

C)if (a!=0) s1; else s2;

D)if (a==0) s1; else s2;

2.以下正确的描述是。

A) 对共用体初始化时,只能对第一个成员进行初始化,每一瞬时起作用的成员是最后一次为其赋值的成员

B) 结构体可以比较,但不能将结构体类型作为函数返回值类型

C) 函数定义可以嵌套

D) 关键字typedef用于定义一种新的数据类型

3.下列的定义中,正确使用字符串初始化的是。

A)char str[7] = "FORTRAN";

B)char str[] = {F,O,R,T,R,A,N,0};

C)char *str = "FORTRAN";

D)char str[] = {'F','O','R','T','R','A','N'};

4.要使下面程序的输出语句在屏幕上显示

1,2,34

则从键盘上输入的正确数据格式为:。

main()

{

char a,b;

int c;

scanf("%c%c%d", &a,&b,&c);

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

}

A)1 2 34 B)1,2,34 C)'1''2'34 D)12 34

5.若有二维数组定义语句:int a[3][4]; 则下面对元素a[i][j]不正确的引用方式是:。

A) *(&a[i][j]) B) *(a+4*i+j)

C) *(a[i]+j) D) *(*(a+i)+j)

二、写出下列程序的运行结果。(10分,每题2分)

1.

#include

main()

{

int k=4, n=0;

for (;n

{

n++;

if (n%2 == 0) break;

k--;

}

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

}

程序运行结果为

2.

#include

main()

{

int n;

static char *mName[]={"Illegal month", "January",

"February","March","April",

"May", "June", "July",

"August", "September",

"October", "November",

"December"};

printf("\nPlease enter a integer:");

scanf("%d",&n);

printf("%s\n",(n<1||n>12)? mName[0] : mName[n]);

}

当程序输入9时,完整的(包括输入)程序运行结果是:当程序输入13时,完整的(包括输入)程序运行结果是:

3.

#include

typedef struct date

{

int year;

int month;

int day;

}DATE;

void func(DATE *p)

{

p->year = 2000;

p->month = 5;

p->day = 22;

}

main()

{

DATE d;

d.year = 1999;

d.month = 4;

d.day = 23;

printf(“%d,%d,%d\n”, d.year, d.month, d.day);

func(&d);

printf(“%d,%d,%d\n”, d.year, d.month, d.day);

}

运行结果是:

4.

#include

main()

{

int m = 7;

printf("%d\n",m/2+1);

printf("%d\n",m/2.0+1);

printf("%f\n",(float)(m/2+1));

printf("%f\n",(float)m/2+1);

printf("m=%d\n",m);

}

运行结果是:

5.

#include

int Fun(int x)

{

static int y = 1;

y += x;

return y;

}

main()

{

int k;

for (k=0; k<3; k++)

{

printf("%d\n", Fun(k));

}

}

运行结果是:

三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(8分,每空2分)

1. 假设有40个学生被邀请来给自助餐厅的食品和服务质量打分,分数划分为1~10这10个等级(1表示最低分,10表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。

Grade Histogram

1 *****

2 **********

3 *******

...

#include

main()

{

相关文档
最新文档