1、IB] for循环执行的输出是123456789 [D] for循环体语句执行9次 [B] int n=10,a[n]; [D| int a[10]=0; 3.14 [A] *q=p; [B] *q=&p; [C] q=p [D] q=&p 浙江理工大学 C程序设计试题(十_) [注意]所有答案写在单张的答题卷上,考试结束递交答卷,试卷不必递交。 一、单项选择题(此题共20分,每题2分)一个C程序的执行是从— [A] 本程序的main函数开始,到main函数结束 [B] 本程序的第一个函数开始,到本程序的最后一个函数结束 [C] 本程序的main函数开始,到本程序
2、的最后一个函数结束 [D] 本程序的第一个函数开始,到main函数结束⑵设有以下定义: int a=0; double b=1.25; char c='A'; #define d 2 那么下面语句中错误的选项是―⑵ [A] a++;[B] b++;[C] C++;[D] d++;设有以下定义和输入语句,要使x、y和z的值分别为10, 3.1和A,程序运行后,正确的输入 数据的方式是—⑶―。 int x;float y;char z; scanf("%d%f%c",&x,&y,&z); [A] 10 3. 1 A[B] 10,3.1,A [C] 10 3.1A(D] 103.1
3、A判断int型变量x是否为IWxWIO0的偶数,可以用表达式—⑷—。 [A] IWxWlOO && x%2==0|B]x>=l &&xv=100&&x%2==0 [C] x>=l && x<=100 && x==2n[D] x>=l 11 x<=100 && x%2==0⑸ 设有以下定义intx=l,y=2;,执行赋值语句x=(x>y)?x+l:y+2;后x和y的值分别是—⑸. [A] 1 和 2[B] 2 和 4[C] 4 和 4[D] 4 和 2设有程序段 for(i=l;iv]();i++) {printf(”%d",i);i++;} 以下表达正确的选项是—(6) _一。 IA]
4、 for循环执行的输出是13579 [C] for循环体语句执行10次以下能正确进行数组定义的是—(7)—。 [A] int a(10); [CJ #define SIZE 1() int a[SIZE];(8) (8) 假设要建立如下图的存储结构,且己有定义fk)atp=3.14,*q;,那么正确的赋值语句是—(8) q p(9)以下语句执行后屏幕上将显示_(9)__。 char s 1 [ ]=HABCn,s2[ ]=,,XYZ,,;strcpy(s2,s 1 );s2[2]='\0';prin【f("%s,%s",s 1 ,s2); [A] ABC, ABC [B] X
5、YZ, XYZ [C] ABC, AB[D] XYZ, XY(10)表达式2&3的结果值为(10)
[A]lIB] 2
(10)表达式2&3的结果值为(10)
[A]lIB] 2
[C]3
[D|5
(ID
(12)
二、程序填空题(此题共30分,每题2分)
阅读以下程序说明和程序代码,在每题提供的假设干可选项中,挑选一个最正确的选项。 ⑴【程序说明】打印数字金字塔,运行结果如右图示。
【程序代码】
# include
6、5-i;— (11) printf(""); for(j=l; _(12) _;j++) (13) (13) 【选项】 [A] [A] [A] [C] J<=1 j<=2*i [B] j==l [B] j==2*i 1£ 2222=1 33333 4444444 555555555 Press any key to continue..- ±1I出 [C] j>=l [C] j<=2*i-l [B] printf(”%d”,i); [D] printfCT'); [D] j>l [D] j==2*i-l 【程序说明】计算1~99之间的素数和。
7、prime函数用于判断任意一个数是否是素数,假设 是素数那么返回1,否那么返回0。其中数值1和2直接被认定为非索数。
【程序代码】
# include
8、 (18) _ } 【选项】 (14) [A] m++; [B] m=m+2; [C] m+2 [D] m+=2 (15) [A] prime(m)=l [B] prime(m) [C] !prime(m) [D] prime(x)!=0 (16) [A] int primc(int m) [B] int prime(int) [C] int prime(int x) [D] void prime(int x) (17) [A] t=0;break; [B] return t; [C] t=0;return t; [
9、D] t=0;
(18)
[A] return t;
[B]
return;
[C];
[D] return t
(1) 【程序说明】任意输入•个少于80个字符的字符串,统计字符串中的阿拉伯数字的个 数。程序运行结果如右图所示。
回“G:\05C\exam\end\06-A ■■
【程序代码】
There are 10 apples.▲
阿拉伯数字有2个。
Press any key to continue.. \ M i出
# include
10、20)— _ (21) _(if(—(22)—) s++;_ (23) _ } printf(”阿拉伯数字有%d个。\n”,s); 【选项】(19) [A] gets(str); [C] scanf("%s'\&str); (20) [A] p=&str;[B] p=str; (21) [A] while(p==*\0') [C] while(p!=\0') (22) [A] *p>=48 && *p<=57 [C] *p>=0 && *p<=9 (23) [A] p++; [C] *p++; (24) [A] gets(str); [C] scanf("%s
11、'\&str); (25) [A] p=&str;[B] p=str; (26) [A] while(p==*\0') [C] while(p!=\0') (27) [A] *p>=48 && *p<=57 [C] *p>=0 && *p<=9 (28) [A] p++; [C] *p++; [B] gets(&str); ID] scanf("%c”,&str[i]); [CJ *p=&str;ID] *p=str; [B] while(*p=='\0') [D] while(*p!='\0') [B]*p>=48 || *p<=57 [D]*p>=0 || *p
12、<=9
田]P+1;
[D] str++;
(4)【程序说明】定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?程 序运行结果如以下图所示。注意闰年问题。(提示:能被4整除且不能被100整除或能被400 整除的年份是闰年)
please input the date <> : 2006-6-1▲ |
Today is the 152st day in 2006.
Press any key to continue...
【程序代码】
#include
13、30,31},i,days=0;printf("please input the date(yyyy-mm-dd):");
scanf("%d-%d-%d",&today.year,&today.month,&today.day);if(today.year%4==0 && today.year%100!=0 11 today.year%400==0)
mon(l]=29;for(i=0;i 14、
【选项】
(24) [A] struct date{
int year; int month; int day;
I struct date today;
[C] struct date{ int year; int month; int day;
I; struct today;
(25) [A] days=days+day;
[C] days=days+today
[B] struct {int year;
int month;int day;
} today;[DI struct date{
int year;int month;
int day;} toda 15、y
[B] days=days+today.day;[D] today.day =days+today.day;
三、程序阅读题(此题共20分,每题2分)
阅读以下程序并回答以下问题,在每题提供的假设干可选答案中,挑选一个正确的答案。
(1) 【程序代码】
# include 16、输出的结果分别是__(26)__。
[A] 2 和 0[B] 2 和 0.5[C] 0 和 2[D] 0. 5 和 2如果将上述程序代码标示为①行中switch语句括号内的表达式改为z%2-0,那么程序运行 时,输入分别是1和2的情况下,输出的结果分别是_(27)__。
[A] 2 和 0[B] 2 和 0.5[C]()和 2[D] 0. 5 和 2
(2) 【程序代码】
# include 17、a[i] void main()(
in 18、t m=17,s=0;while(m>=l)( m/=2; s+=2; printf("m=%d,s=%d\n",m,s);
)
}
【选项】
(30)(31)
(32)程序运行时,while循环执行了—(30)—次。
[A] 0[B] 4程序运行时,第1行输出—(31)—o
[A] m=17, s=0[B] m=8, s=2程序运行时,最后一行输出_(32)__。
[A] m=0, s=10[B] m=l,s=8[C]
[C][C]
[D]17m=8. 5, s=2
m=l, s=10(33)
如果将代码中while判断条件改为while(m!=0),那么whil 19、e循环将[A]一次也不执行[B]无法停止
[C]执行4次[D] m=9, s=2
[D]护2, s=6_(33)—o
H)]执行5次
⑷【程序代码】# include 20、
[D] 20, 16
[A] 15,15[B] 16,16(35)程序运行时,第2行输出—(35)
[A] 15J5[B] 16,16
(35)程序运行时,第2行输出—(35)
[A] 15J5[B] 16,16
[C] 17,15
[D]20,16
四、程序设计题(此题共30分,每题10分)
(1)编写程序,求解ax2+bx+c=O方程的根。(提示:求根公式为x=
-b±^!b2 -4ac)
要求从键盘上输入系数a、b、c,根据以下几种情况分别进行求解:
• a=0,输出“不是一元二次方程”
• a/0且b2-4ac=0,求解并输出两个相等实根。
• aAO且 21、b2-4ac>0,求解并输出两个不等实根。
• a尹0且b2-4ac<0,输出“没有实根”。
(2)编写程序,定义计算阶乘的函数intfact(intx),在main。函数中调用fact函数计算求和
20 1
式 s=y-o
笊!
(3)编写一•个统计平均成绩的程序。文件“stu.txt”中记录了一批成绩数据。请输出所有成 绩和平均成绩。文件“stu.txt”中的数据和程序运行结果分别如以下图所示。
《C程序设计》试题11考试答案与评分标准
(一)、单项选择题(每题2分,总分值20分)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9) 22、
(10)
A
D
C
B
D
D
C
D
C
B
(二)、程序填空题(此题共30分,每题2分)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
C
C
B
A
B
C
C
D
A
B
B
(三)程序阅读题(此题共20分,每题2分)
(26)
(27)
(28)
(29)
(30)
(31)
(32)
(33)
(.34)
(35)
A
C
D
B
C
B
A
D
C
D
(四)、程序设计题(此题共30分,每题10分) 23、
1 ttinclude 24、t s=x,i;
for(i=2;i






