视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
c程序测试题(答案)
2025-09-29 22:38:19 责编:小OO
文档
一、选择题

1. 以下叙述正确的是(A)。

A.C语言允许直接访问物理地址,可以直接对硬件进行操作

B.C语言程序不必编译,即可在计算机上运行

C.C语言不允许直接访问物理地址,不可直接对硬件进行操作

D.C语言程序只需编译,不需要连接即可在计算机上运行

2. 在一个C程序中(B)。

A.main函数出现在所有函数之前。C程序不必都有main函数

B.main函数可以在任何地方出现。一个C程序必须有且仅有一个main函数

C.main函数必须出现在所有函数之后。一个C程序只能有一个main函数

D.main函数出现在固定位置。一个C程序可以有多个main函数

3. 下列叙述正确的是(B)。

A.C语言中既有逻辑类型也有构造类型数据

B.C语言中没有逻辑类型,但有构造类型

C.C语言中有逻辑类型,但没有构造类型

E.C语言中既没有逻辑类型也没有构造类型

4. 下列关于C语言用户标识符的叙述中正确的是(B)。

A.用户标识符中可以出现下划线和中划线(减号)

B.用户标识符中不可以出现中划线,但可以出现下划线

C.用户标识符中可以出现下划线,但不可以放在标识符开头

D.用户标识符中可以出现下划线和数字,他们都可以放在标识符开头

5. 下列转义字符中,错误的是(A)。

A.‘\\0xa5’   B.  ‘\031’    C.  ‘\\b’     D.  ‘ \\” ’

6. 字符串 “\\\\\\\\1234\\\\\\\\\\n” 在内存中占用的字节数是(C)。

A.14      B.  9        C.  10      D.  11

7. 已知梯形的上底为a, 下底为b,高为h,用C语言写的正确的面积公式是(B)。

A.  1/2*(a+b)*h           B.  1.0/2*(a+b)*h

C.  1.0/2.0(a+b)h          D.  1.0/2*a+b*h

8. 与k=n++完全等价的表达式是(D)。

A.  n=n+1, k=n   B.  k+=n+1   C.  K=++n   D. k=n, n=n+1

9. 已定义char s1, s2;, 下面正确的语句是(C)。

A.  scanf(“%s%c”, s1,s2);         B.  scanf(“%s%c”, s1, &s2);

C.  scanf(“%c%c”, &s1,&s2);      D.  scanf(“%c%c”, s1,s2);

10. 为下面的程序输入数据,使得i=10, k=’a’, j=15, 正确的键盘输入方法是(D)。

A.  10,a,15<回车>       B.  10<回车>a<回车>15<回车>

C.  10’a’15<回车>       D.  10a15<回车>

11. 已知float x=2.23, y=4.35;, 根据下面的输出结果,正确的程序段是(B)。

x=2.230000,y=4.350000

y+x=6.58,y-x=2.12

A.printf(“x=%8.2f,y=%8.2f”,x,y); printf("y+x=%4.2f,y-x=%4.2f\\n",y+x,y-x); 

B.printf(“x=%8.6f,y=%8.6f\\n”,x,y); printf("y+x=%4.2f,y-x=%4.2f\\n",y+x,y-x);

C.printf(“x=%7.2f,y=%7.2f\\n”,x,y); printf("y+x=%3.2f,y-x=%3.2f\\n",y+x,y-x);

D.printf(“x=%f,y=%f”,x,y);  printf("y+x=%f,y-x=%f\\n",y+x,y-x);

12. 下列表达式中,值为0的表达式是(D)。

A.  3 !=0     B.  3 !=3>4    C.  3>4==0    D.  6>5>4

13. 下列表达式中,结果为1的表达式是(A)。

A.  !0==1     B.  !6        C.  !2>=3      D.  !3!=0

14. 设int a=3; 则表达式a<1&&--a>1的运算结果和a的值分别是(B)。

A.  0和2    B.  0和3     C.  1和2    D.  1和3

15. 下面程序的运行结果是(B)。

main(){ int x=3;

  do{printf("%3d",x-=2); } while(!(--x));

}

A.  死循环     B. 1 -2     C.  10      D.  1

16. 下面程序的运行结果是(D)。

main(){int i,j,k,sum;

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

   {sum=1;

    for(j=i;j<7;j++) sum=sum+j;

}

printf(“%d”,sum);

}

A.  48      B.  49        C.  1      D.  7

17. 不能把字符串“Hello!”赋给数组a的语句是(B)。

A.char a[10]={‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘!’};

B.char a[10]; a=“Hello!”;

C.char a[10]; strcpy(a, “Hello!”);

D.char a[10]= “Hello!”;

二、完善程序或写出程序运行结果

1. 根据以下给定公式计算e的值(取前n项)

main(){  double sum=1.0, x=1.0, y=1.0; int n;

scanf("%d    &n       );

while(n){

y=x*y ;

sum=sum+    1.0/y      ;

x++; --n;

}

printf("sum=%f", sum);

}

2. 用10元人民币兑换角币(1角、2角、5角),有多少种换法?

main(){ int i, j, k, m=0;

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

   for(j=0; j<=(100-  5*i   )/2; j++)

for(k=0; k<=100-5*i-2*j; k++)

          if(i*5+j*2+k==100) m++;

printf(”m=%d ”,m);

}

3. 1988年世界人口数为50亿,按年增长率11‰计算,哪一年开始世界人口数突破100亿?

main(){ int year=1988;

float r=0.011, no=5E9, n;

n=no;

do{n=      n       * (1+r); 

year++;} while (     n    <2*no);

printf(“year=%d\\npupulation=%f ”, year, n);

}

4. 下面程序的功能是求矩阵B(不包括外围元素)的元素之积。

main(){ int i, j, f=1;

int b[][4]={1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7};

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

for(j=0; j<4; j++) printf(“%4d”, b[i][j]);

printf(“\\n”);

}

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

for(j=1; j<3; j++) f=f*   b[i][j]    ;

     printf(“f=%d\\n”, f);

}

5. 以下程序的输出结果是      #&       。

main(){ int a=2, b=7, c=5;

switch(a>0){

case 1: switch(b<0)

      { case 1: printf(“@”); break;

case 2: printf(“!”); break;

}

case 0: switch(c==5)

{ case 0: printf(“*”); break;

case 1: printf(“#”); break;

default: printf(“#”); break;

}

default: printf(“&”);

} printf(“\\n”);

}

6. 以下程序的输出结果是       12       。

main(){ int a[10],i,k=0;

for(i=0; i<10; i++) a[i]=i;

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

k+=a[i]+i;

printf(“%d\\n”, k);

}

三、计算表达式的值

若有变量定义char a=’a’; int i=3, j=5, b; float x=2.5; 

double y=5.0, z; 计算下面表达式的值。

1. a+i-j+x/y: 95.5    2. (x+y)+i++: 10.5

3. y+=i-=j*=++x: -9.0    4. b=a+=j%i: 99

5. a=a+i, a+j: 105     6. a=(a+i, a+j) : 102

7. y=(x=2, x+1, x+2) : 4.0    8. i-=j*=x+y: -34

9. (i++)*(--j) : 12    10. z=(i++)*(j++): 15.0

11. (int)x/(int)y+y: 5.0    12. (float)i/(++j) : 0.5

13. –j%i+j: 3    14. (int)y%i%(int)(x+y) : 2

四、编程

下面是一个5阶螺旋方阵,试编程打印出此形式的n(n<10)阶的方阵(顺时针方向旋进)

12345
161718196
152425207
142322218
131211109

下载本文
显示全文
专题