哈工大学年秋季学期C语言试题包括答案.docx

上传人:b****2 文档编号:2203786 上传时间:2022-10-27 格式:DOCX 页数:22 大小:25.04KB
下载 相关 举报
哈工大学年秋季学期C语言试题包括答案.docx_第1页
第1页 / 共22页
哈工大学年秋季学期C语言试题包括答案.docx_第2页
第2页 / 共22页
哈工大学年秋季学期C语言试题包括答案.docx_第3页
第3页 / 共22页
哈工大学年秋季学期C语言试题包括答案.docx_第4页
第4页 / 共22页
哈工大学年秋季学期C语言试题包括答案.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

哈工大学年秋季学期C语言试题包括答案.docx

《哈工大学年秋季学期C语言试题包括答案.docx》由会员分享,可在线阅读,更多相关《哈工大学年秋季学期C语言试题包括答案.docx(22页珍藏版)》请在冰豆网上搜索。

哈工大学年秋季学期C语言试题包括答案.docx

哈工大学年秋季学期C语言试题包括答案

班号

姓名

哈工大2005年秋季学期

C语言试题

题号

卷面总分

分数

说明:

本试卷卷面满分为100分。

总成绩将按平时实验成绩和卷面笔试成绩各自所占比例折合后累加计算。

一、判断对错,正确的打“√”,错误的打“×”。

(8分,每题1分)

1.指针变量和变量的指针是同一个名词不同说法。

()

2.在C语言中,二维数组元素是按行存放的。

()

3.数组不可以整体赋值。

()

4.向函数传递参数时,实参和形参不可以重名。

()

5.一个数组能够存储不同类型的数据()。

6.指向不同类型数组的两个指针不能进行有意义的比较。

()

7.unionch

{

inta[3];

floatm;

};

这样的一个数据类型共占用内存数为6字节。

()

8.设有定义:

chara[2][3]={1,2,3,4};则数组元素a[1][1]的值为0。

()

二、单项选择题:

(10分,每题2分)

1.下列对字符串的定义中,错误的是:

A)charstr[7]="FORTRAN";

B)charstr[]="FORTRAN";

C)char*str="FORTRAN";

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

2.设有声明语句:

inta=1,b=0;则执行以下语句后输出:

switch(a)

{

case1:

switch(b)

{

case0:

printf("**0**");break;

case1:

printf("**1**");break;

}

case2:

printf("**2**");break;

}

A)**0**B)**0****2**

C)**0****1****2**D)有语法错误

3.在while(x)语句中的x与下面条件表达式等价的是:

A)x!

=0B)x==1C)x!

=1D)x==0

4.已知

structsk

{

inta;

floatb;

}data,*p;

若有p=&data则对data中成员a的正确引用是________。

A)(*p).dataB)(*p).a

C)p->data.aD)p.data.a

5.C语言中形参的缺省存储类别是:

A)自动(auto)B)静态(static)

C)寄存器(register)D)外部(extern)

三、写出下列程序的运行结果。

(10分,每题2分)

1.

#include

main()

{

intx=8,y=12;

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

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

}

运行结果是:

 

2.

#include

main()

{

intx,y;

scanf("%2d%*3s%2d",&x,&y);

printf("%d",x+y);

}

程序执行时从键盘输入:

123456789↙

运行结果是:

 

3.

#include

voidFunc(intb[])

{

intj;

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

{

b[j]=j;

}

}

main()

{

staticinta[]={5,6,7,8},i;

Func(a);

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

{

printf("%d\n",a[i]);

}

}

运行结果是:

 

4.

#include

main()

{

intcube(inty);

intx;

for(x=1;x<=5;x++)

printf(“%d”,cube(x));

}

intcube(inty)

{

return2*y;

}

 

运行结果是:

5.

#include

voidFunc(void);

main()

{

inti;

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

{

Func();

}

}

voidFunc(void)

{

staticinttimes=1;

printf("Func()wascalled%dtime(s).\n",

times++);

}

运行结果是:

 

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

(12分,每空2分)

1.下面这个程序用于读入5个整数,当程序读入的数据为正整数时,则显示该数,否则,不显示。

读入5个数据后,程序结束运行。

#include

main()

{

inti,n;

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

{

printf("Pleaseentern:

");

scanf("%d",);

if(n<=0)_____________;

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

}

printf("Programisover!

\n");

}

2.下面函数实现strcmp的功能,将两个字符串s和t进行比较,然后将两个字符串中第一个不相同字符的ASCII码值之差作为函数值返回。

intMyStrcmp(chars[],chart[])

{

inti;

for(i=0;s[i]==t[i];i++)

{

if(s[i]==)return0;

}

return();

}

 

3.下面程序模拟了鹘子的6000次投掷,用rand函数产生1到6之间的随机数face,然后统计1到6每一面出现的机会存到数组frequency中。

main()

{

intface,roll,frequency[7]={0};

strand(time(NULL));

for(roll=1;roll<=6000;roll++)

{

face=;

++;

}

for(face=1;face<=6;face++)

{

printf(“%d,%d”,face,frequency[face]);

}

}

五、在下面给出的程序中,有9处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。

(18分,每找对1个错误,加1分,每修改正确1个错误,再加1分。

1.输入一行字符,统计其中的英文字符、数字字符、空格字符,以及其他字符的个数。

#include

#include

#defineARR_SIZE=80;

main()

{

charstr[ARR_SIZE];

intlen,i;

intletter=0,digit=0,space=0,other=0;

printf("请输入一个字符串:

");

gets(str);

len=strlen(str);

for(i=0;i

{

if(a=

{

letter++;

}

elseif(0=

{

digit++;

}

elseif(str[i]='')

{

space++;

}

else

other++;

}

printf("英文字符数:

%d\n",letter);

printf("数字字符数:

%d\n",digit);

printf("空格数:

%d\n",space);

printf("其他字符数:

%d\n",other);

}

2.任意输入英文的星期几,在查找星期表后输出其对应的数字。

#include

main()

{

inti,pos;

intfindFlag=0;

charx[10];

charweekDay[7][]={"Sunday",

"Monday",

"Tuesday",

"Wednesday",

"Thursday",

"Friday",

"Saturday"};

printf("请输入一个字符串:

");

scanf("%s",&x);

for(i=0;i<7&&!

findFlag;i++)

{

if(x=weekDay[i])

{

pos=i;

findFlag=1;

}

}

if(findFlag=1)

{

printf("%s是%d\n",x,pos);

}

else

{

printf("没有找到!

\n");

}

}

六、编程(42分,每小题14分)

1.编程计算a+aa+aaa+……+aa…a(n个a)的值,要求n和a由用户从键盘输入。

2.给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。

90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69为‘D’,60分以下为‘E’。

3.从键盘任意输入某班10个学生的成绩,计算总成绩并统计成绩不及格的学生人数,要求用一维数组做函数参数,在函数中实现输出总成绩及不及格的学生人数。

参考答案

一、判断对错,正确的打“√”,错误的打“×”。

(8分,每题1分)

1.指针变量和变量的指针是同一个名词不同说法。

(×)

2.在C语言中,二维数组元素是按行存放的。

(√)

3.数组不可以整体赋值。

(√)

4.向函数传递参数时,实参和形参不可以重名。

(×)

5.一个数组能够存储不同类型的数据(×)。

6.指向不同类型数组的两个指针不能进行有意义的比较。

(√)

7.unionch

{

inta[3];

floatm;

};

这样的一个数据类型共占用内存数为6字节。

(√)

8.设有定义:

chara[2][3]={1,2,3,4};则数组元素a[1][1]的值为0。

(√)

二、单项选择题:

(10分,每题2分)

1.下列对字符串的定义中,错误的是:

A。

A)charstr[7]="FORTRAN";

B)charstr[]="FORTRAN";

C)char*str="FORTRAN";

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

2.设有声明语句:

inta=1,b=0;则执行以下语句后输出:

B。

switch(a

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

当前位置:首页 > 经管营销 > 生产经营管理

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

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