浙江理工大学C语言期末试题(含答案)

  • 格式:doc
  • 大小:82.00 KB
  • 文档页数:8

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 <stdio.h>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<n [D] i=n(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 <stdio.h>main() {int year,leap;scanf("%d", (16) );if (year%4==0) {if (year%100==0){if (year%400==0)leap=1;(17)leap=0;}elseleap=1;}else(18) ;if ( (19) )printf ("%d is ", (20) );elseprintf ("%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 <stdio.h>main() {int a[10],i;(21)p=a;for (i=0;i<10;i++){scanf("%d", (22) );(23) ;}for (p=a;p<(a+10);p++)(24)printf("\n");(25) ;for (;p<(a+10);p++)printf("%d ",*p);}【选项】[A] int p[10] [B] int *p; [C] int p; [D] int a; (21)(22[A] a++ [B] a[p] [C] *p [D] p)[A] p++ [B] a++ [C]*p++ [D] *a++(23)(24[A] *a=*a+10; [B] *p=*(p+10); [C] *p=*p+10; [D] *a=*(a+i); )(25[A] p=a[0] [B] p=*a [C] p=a [D] *p=&a)三、程序阅读题(本题共20分,每小题2分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确的答案。

(1)【程序说明】运行程序并回答问题。

【程序代码】#include <stdio.h>#include <math.h>void main(){ int n,s=0;scanf("%d",&n);n=fabs(n);while(n>1) {s=s+n%10;n=n/10;}printf("%d\n",s);}【选项】(26) 程序运行时输入312,输出___(26)__。

[A] 213 [B] 6 [C] 312 [D] 3为。

(27) 程序运行时输入-5104,输出___(27)__。

[A]-5104 [B]–4015 [C]10 [D] 51.04(2)【程序说明】运行程序并回答问题。

【程序代码】# include <stdio.h>void main(){int a,b,c,temp;a=5;b=12;c=6;printf("a=%d,b=%d,c=%d\n",a,b,c);if(a<b) swap(&a,&b);if(a<c) swap(&a,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);if(b<c) swap(&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);}void swap(int *x,int *y){int temp;temp=*x;*x=*y;*y=temp;}【选项】(28) 程序运行时,第1行输出___(28)__。

[A] a=5,b=12,c=6 [B] a=%d,b=%d,c=%d[C] a=5.0,b=12.0,c=6.0 [D] a=12,b=5,c=6(29) 程序运行时,第2行输出___(28)__。

[A] a=5,b=12,c=6 [B] a=6,b=12,c=5[C] a=12,b=5,c=6 [D] a=12,b=6,c=5(30) 程序运行时,第3行输出___(30)__。

[A] a=5,b=12,c=6 [B] a=6,b=12,c=5[C]a=12,b=5,c=6 [D] a=12,b=6,c=5(3)【程序说明】运行程序并回答问题。

【程序代码】#include <stdio.h>void main(){char s1[40];int i=0;printf("\nInput a string:");scanf("%s",s1);while (s1[i] !='\0'){if (s1[i]>='A' && s1[i] <='Z')s1[i]=s1[i]+32;i++;}printf("\n%s\n",s1);}【选项】(31) 程序运行时,输入abc30DCA,输出___(31)__。

[A] 62 [B] abc30dca [C] abc [D] DCA(32) 程序运行时,输入Face,输出___(32)__。

[A] Face32 [B] FACE [C] face [D] f(4)【程序说明】运行程序并回答问题。

【程序代码】#include <stdio.h>void main(){FILE *fp;int i,j,k,x,y;scanf("%d%d",&i,&j);fp=fopen("t.dat","w");fprintf(fp,"%d\n",i);if (i<j)k=j;else if(i>j)k=i;elsek=i+j;fprintf(fp,"%d\n",k);fclose(fp);fp=fopen("t.dat","r");fscanf(fp,"%d%d",&x,&y);printf("x=%d,y=%d\n",x,y);fclose(fp);}【选项】(33) 程序运行时,输入20 12 输出___(33)__。