浙江理工大学C语言期末试题(含答案)优质版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C程序设计试卷
一、单选题(本题共20分,每小题2分)
(1) 以下C语言常量中,表达错误的是___(1)___。
[A] 0xFF [B] 3.2e0.5 [C] 5.6 [D] ‘\n’
(2) C程序的基本结构有___(2)___。
[A] 选择、重复和模块[B] 顺序、选择和模块
[C] 顺序、选择和循环[D] 逻辑、物理和程序
(3) 在C语言程序中,关于字符串的描述正确的是___(3)___。
[A] 可定义一个字符串变量来存储字符串;
[B] 可定义一个字符变量来存储任意字符串;
[C] 可定义一个字符数组来存储字符串;
[D] 可定义一个字符指针来存储字符串;
(4) 在C语言中,用关键字___(4)___定义双精度类型变量。
[A] single [B] double [C] float [D] int
(5) 下面叙述中不正确的是___(5)___。
[A] 不同函数中可以使用相同名字的变量
[B] 形式参数是局部变量
[C] 在一个函数内部的复合语句中定义的变量在本函数范围内有效
[D] 在一个函数内部定义的变量只能在本函数范围内有效
(6) 下面程序段的输出结果是___(6)___。
int i=100;
while(i>120)
i=i+1;
printf(″%d″,i);
[A] 100 [B] 101 [C] 120 [D] 121
(7) 以下定义语句中正确的是___(7)___。
[A] char a='A' b='B';
[B] float a=b=10.0;
[C] int a=10, *b=&a;
[D] float *a,b=&a;
(8) 已有定义:int i, a[10], *p;,则合法的赋值语句是___(8)___。
[A] p=100; [B] p=a[5]; [C] p=a[2]+2; [D]p=a+2;
(9) 设有定义:int a,*p1=&a; 以下scanf语句中能正确为变量a读入数据的是___(9)___。
[A] scanf(“%d”,p1);
[B] scanf(“%d”,a);
[C] s canf(“%d”,&p1);
[D] scanf(“%d”,*p1);
(10) 以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是___(10)___。
[A] if((a>b)&&(b>c)) k=1 else k=0;
[B] if((a>b)||(b>c)) k=1 else k=0;
[C] if(a<=b) k=0;
[D] if(a>b) k=1;
二、程序填空题(本题共30分,每小题2分)
阅读下列程序说明和程序代码,在每小题提供的若干可选项中,挑选一个最佳的选项。(1)【程序说明】
输入整数n,输出共有n层的金字塔图形。例如:
【程序代码】
# include
void main() {
int i,j,n;
char c='*';
printf("输入层数:");
scanf("%d",&n);
for(i=1; (11) ;i++){
for(j=1;j<=n-i; (12) )
printf(" ");
for(j=1; (13) ;j++){
printf( (14) ,c);
}
printf("\n"); //换行,在内嵌循环结束后执行
(15)
}
【选项】
(11) [A] i<=n+1 [B] i<=n [C] i (12) [A] i++ [B] j=i+1 [C] j++ [D] i=j+1 (13) [A] j>=2*i-1 [B] j<=2*i-1 [C] j<=2*n-1 [D] j<=n (14) [A] "%d" [B] "%s" [C] "%c" [D] "%f" (15) [A] } [B] )[C] };[D] 以上选项都不正确 (2)【程序说明】输入年份判断是否闰年。 【程序代码】 #include main() { int year,leap; scanf("%d", (16) ); if (year%4==0) { if (year%100==0) { if (year%400==0) leap=1; (17) leap=0; } else leap=1; } else (18) ; if ( (19) ) printf ("%d is ", (20) ); else printf ("%d is not ",year); printf ("a leap year.\n"); } 【选项】 (16) [A] year [B] &year [C] &n [D] &leap (17) [A] else if [B]else; [C] else [D] else if(leap==1) (18) [A] leap=0 [B] leap=1 [C] year=0 [D] year=1 (19) [A]year=1 [B] leap [C] leap =0 [D]以上选项都不正确 (20) [A]leap [B] &leap [C]year [D]&year (3)【程序说明】输入十个整数并保存在一维数组中,使数组中每个元素都增加10。 【程序代码】 #include main() { int a[10],i; (21) p=a; for (i=0;i<10;i++){ scanf("%d", (22) );