手机版

C语言程序设计教程第三章练习题题目

发布时间:2024-10-30   来源:未知    
字号:

单选题

1、若定义a=3,b=4,执行printf(“%d, %d”,(a,b),(b,a));的输出结果为()。

A.3,4

B.4,3

C.3,3

D.4,4

2、如果要求在if后的判断条件是a不等于0,则下列选项中能正确表达这一关系的是()。

A.a<>0

B.!a

C.a=0

D.a

3、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A.缩排位置相同的if

B.在其之前未配对的if

C.在其之前尚未配对的最近的if

D.同一行上的if

4、有定义int t = 0;则有循环while(t=1){…},则下列关于while循环语句的描述中正确的是()。

A.循环控制表达式的值为0

B.循环控制表达式的值为1

C.循环控制表达式的值不合法

D.以上说法都不对

5、若有定义:int x ,i;则下列for循环语句:

for(i = 0,x = 0; i<= 9 && x!=876;i++)

scanf(“%d”,&x);

下列选项中,描述正确的是()

A.最多执行10次

B.最多执行9次

C.是无限循环

D.循环体一次也不执行

6、关于下面的for循环语句

int i,k;

for(i = 0,k = -1;k = 1;i++,k++) printf(“*****”);

下列选项中,描述正确的是()

A.判断循环结束的条件非法

B.是无限循环

C.只循环一次

D.一次也不循环

7、C语言程序的三种基本结构是()。

A.顺序结构,选择结构,循环结构

B.递归结构,循环结构,转移结构

C.嵌套结构,递归结构,顺序结构

D.循环结构,转移结构,顺序结构

8、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。

A.a<>0

B.!a

C.a=0

D.a

9、两次运行下面的程序,如果从键盘上分别输入6和4,那么输出结果是()。

void main()

{

int x;

scanf("%d",&x);

if (x++ > 5)

printf("%d",x);

else

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

}

A.7和5

B.6和3

C.7和4

D.6和4

10、运行以下程序后,如果从键盘上输入china#,那么输出结果为()。

#include<stdio.h>

void main()

{

int v1=0,v2=0;

char ch;

while ((ch=getchar())!='#')

switch (ch)

{

case 'a':

case 'h':

default:

v1++;

case '0':

v2++;

}

printf("%d,%d\n",v1,v2);

}

A.2,0

B.5,0

C.5,5

D.2,5

11、有如下程序:

void main()

{

int x=1,a=0,b=0;

switch(x)

{

case 0:

b++;

case 1:

a++;

case 2:

a++;

b++;

}

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

}

该程序的输出结果是()。

A.a=2,b=1

B.a=1,b=1

C.a=1,b=0

D.a=2,b=2

12、下面程序的输出是()。

void main()

{

char *a="12134211";

int v1=0,v2=0,v3=0,v4=0,k;

for (k=0;s[k];k++)

switch (s[k])

{

default:

v4++;

case '1':

v1++;

case '3':

v3++;

case '2':

v2++;

}

printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=8,v2=8,v3=8,v4=8

13、下列程序段的输出结果为()。

int y=1;

while(y--);

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

A.y=-1

B.y=0

C.死循环

D.y=9

14、当输入数据:27 63 时,下面程序的运行结果是()。#include<stdio.h>

int gbs(int a, int b)

{

int c;

a=a>0?a:-a;

b=b>0?b:-b;

c=a*b;

if (c==0)

return 0;

while (a!=b)

if (a>b)

a-=b;

else

b-=a;

return c/a;

}

int gys(int a, int b)

{

if (a*b==0)

return 0;

a=a>0?a:-a;

b=b>0?b:-b;

while (a!=b)

if (a>b)

a-=b;

else

b-=a;

return a;

}

void main()

{

int a,b,c,d;

scanf("%d%d",&a,&b);

c=gbs(a,b);

d=gys(a,b);

printf("a=%d b=%d gbs=%d gys=%d\n",a,b,c,d);

}

A.a=30 b=63 gbs=189 gys=9

B.a=27 b=63 gbs=190 gys=10

C.a=27 b=63 gbs=189 gys=9

D.a=27 b=63 gbs=188 gys=10

15、假设有程序段:int k=0; while(k=1) k++; while语句的循环次数是()。

A.无限次

B.有语法错,不能执行

C.一次也不执行

D.执行1次

16、执行下面程序片段的结果是()。

int x=23;

do

{

printf("%2d",x--);

} while (!x);

A.打印出321

B.打印出23

C.不打印任何内容

D.陷入死循环

17、在C语言程序中,若希望结束循环,则do-while语句构成的循环中的条件为()。

A.0

B.1

C.true

D.非

18、以下描述中正确的是()。

A.do-while语句构成的循环不能用其它语句构成的循环来代替

B.do-while语句构成的循环只能用break语句退出

C.用do-while语句构成的循环,在while后的表达式为非零时结束循环

D.用do-while语句构成的循环,在while后的表达式为零时结束循环

19、以下循环体的执行次数是()。

void main()

{

int i,j;

for (i=0,j=1; i<=j+1; i+=2,j--)

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

}

A.3

B.2

C.1

D.0

20、有如下程序:

void main()

{

int i,sum;

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

sum+=i;

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

}

该程序的执行结果是()。

A.6

B.3

C.死循环

D.0

21、以下程序的输出结果是()。

void main()

{

int x=10, y=10, i;

for (i=0; x>8; y=++i)

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

}

A.10 1 9 2

B.9 8 7 6

C.10 9 9 0

D.10 10 9 1

22、下列说法中正确的是()。

A.在switch语句中一定要使用break语句

B.在switch语句中不一定要使用break语句

C.break语句是switch语句的一部分

D.break只能用于switch语句中

23、执行下面的程序后,a的值为()。

void main()

{

int a,b;

for (a=1,b=1; a<=100; a++)

{

if (b>=20)

break;

if (b%3==1)

{

b+=3;

continue;

}

b-=5;

}

}

A.7

B.8

C.9

D.10

24、若有以下程序段,w和k都是整型变量:

w=k;

LB:

if (w==0)

go to LE;

w--;

printf("*");

goto LB;

LE:

那么不能与上面程序段等价的循环语句是()。

A.for (w=k; w!=0; w--) printf("*");

B.for (w=k; w; --w) printf("*");

C.w=k; while (w-- != 0) printf("*"); w++;

D.w=k; do { w--; printf("*"); } while (w!=0);

多选题

1、C语言的程序结构语句包括()。

A.顺序结构语句

B.循环结构语句

C.选择结构语句

D.逻辑结构语句

2下列语句哪些属于循环语句()。

A.for语句

B.do-while语句

C.while语句

D.switch语句

判断题

1、break是跳出当前循环,接着执行循环后面的代码。

2、continue只能用于循环语句。

3、break语句只能在循环语句中使用。

4、在C语言中,跳转语句有break语句、goto语句和continue语句。

简答题

1、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void main()

{

int a,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

printf(“%d,%d”,a,b);

}

2、请阅读下面的程序,在空白处填写正确的代码,要求输出m和n的值,且每行从头开始。void main()

{

int m = 10, n = 20;

printf( ,m);

printf( ,n);

}

3、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void main

{

int x = 1,y = 1, z = 10;

if(z<0)

if(y>0) x = 3;

else x = 5;

printf(“%d\t”,x);

if(z = y < 0) x = 3;

else if(y==0) x = 5;

else x = 7;

printf(“%d\t”,x);

printf(“%d\t”,z);

}

4、请阅读下面的程序,在空白处填写正确的代码,实现分段函数:

x< 0 y = 2x + 3;

x = 0 y = 0;

x> 0 y = (x+7)/3;

输入x,计算y值,输出y。

void main()

{

int x, y;

scanf(“%d”,&x);

if(x < 0) y = 2*x + 3;

y = 0;

if(x > 0) y = (x + 7) / 3;

printf(“%d”,y);

}

5、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void main()

{

char ch = ‘B’;

switch(ch)

{

case ‘A’:printf(“it is A\n”);

case ‘B’:printf(“it is B\n”);

case ‘C’:printf(“it is C\n”);

default: printf(“other\n”);

}

}

6、请阅读下面的程序,在空白处填写正确的代码,实现下列功能:

投票表决器:

-输入Y,y,打印agree

-输入N,n,打印disagree

-输入其他,打印lose

void main()

{

char ch;

scanf(“%c”,&ch);

{

case ‘Y’:

case ‘y’: printf(“agree”); ;

case ‘N’:

case ‘n’; printf(“disagree”); ;

; printf(“loser”);

}

}

7、请阅读下面的程序,在空白处填写正确的代码,实现下列功能:

查询学生身高的分布状况:

H 175-200cm 30%

M 160-175cm 40%

L 150-160cm 30%

void main()

{

char ch;

scanf(“%d”,&ch);

{

: printf(“175-200cm身高的学生占30%\n”); ;

: printf(“160-175cm身高的学生占40%\n”); ;

: printf(“160-175cm身高的学生占40%\n”); ;

default: printf(“输入有误,请重新输入!\n”);

}

8、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void main()

{

int num = 0;

while(num <= 2)

{

num++;

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

}

}

9、请阅读下面的程序,在空白处填写正确的代码,实现下列功能:

输出1-100之间的偶数数:

void main()

{

int num = 1, sum = 0;

while (num <= 100)

{

if ( )

sum += num;

;

}

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

}

10、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void main()

{

int num = 0;

do

{

num++;

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

}

while(num <= 2);

}

11、请阅读下面的程序,在空白处填写正确的代码,实现下列功能:

输出1-100之间的偶数数:

void main()

{

int num = 1, sum = 0;

do

{

if ( )

sum += num;

;

}while (num <= 100);

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

}

12、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void main()

{

int i, m = 1;

for (i = 3; i >= 1; i--)

{

m = (m + 1) * 2;

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

}

}

13、请阅读下面的程序,在空白处填写正确的代码,实现下列功能:

求出1-100之间的偶数和:

void main()

{

int i, sum = 0;

for(i = 2; ; i++)

{

;

}

}

14、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void main()

{

int i, j;

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

{

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

{

printf("(%d,%d)\n", i, j);

}

}

}

15、请阅读下面的程序,在空白处填写正确的代码,实现下列功能:

打印下列图形:

*

***

*****

*******

void main()

{

int i, j, k;

for (i = 0; ; i++)

{

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

printf(" ");

for (k = 0; ; k++)

printf("*");

;

}

}

16、请阅读下面的程序,在空白处填写正确的代码,实现下列功能:

X Y Z

+ Y Z Z

5 3 2

void main()

{

int x, y, z, i, result = 532;

for (x = 1; ; x++)

{

for (y = 1; ; y++)

{

for (z = 0; z <= 1; z++)

{

i = + (100 * y + 10 * z + z);

if (i == result)

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

}

}

}

}

17、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void main()

{

int a, b;

for (a = 1, b = 1; a <= 100; a++)

{

if (b >= 10)

break;

if (b % 3 == 1)

{

b += 3;

continue;

}

}

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

}

18、请阅读下面的程序,在空白处填写正确的代码,实现下列功能:

用户键盘输入一个数,判断是奇数还是偶数.

void main()

{

int num;

scanf("%d", &num);

if (num % 2 == 0)

;

else

;

ep1:

printf("输入的是一个偶数!\n");

ep2:

printf("输入的是一个奇数!\n");

}

19、请阅读下面的程序,分析运行结果。

void main()

{

printf("@\n");

printf("@@\n");

printf("@@@\n");

printf("@@@@\n");

printf("@@@@@\n");

}

20、请阅读下面的程序,在空白处填写正确的代码,输出三个整数中最大的整数。#include <stdio.h>

void main()

{

int a = 10, b = 40, c = 20, t = a;

if (t < b)

{

}

if ( )

{

t = c;

}

printf("%d %d %d中的最大数是%d\n", a, b, c, t);

}

21、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:从键盘输入一个年份数据,判断此年份是否为闰年。(注:满足下面两个条件中的一个即为闰年:一、400的倍数;二、4的倍数但不是100的倍数)。

void main()

{

int x,i;

scanf("%d",&x);

if (x%400==0)

i=1;

else if (_______)

i=1;

else

_______;

if (i==1)

printf("该年为闰年\n");

if (i==0)

printf("该年为平年\n");

}

22、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:输入三个整数,将最大数挑选出来显示。

void main()

{

int a, b, c, max;

scanf("%d,%d,%d",&a,&b,&c);

if (a>b)

_______

else

max=b;

if (max<c)

_______

printf("max=%d", max);

}

23、请阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。

#include <stdio.h>

void main()

{

int x = 1, a = 0, b = 0;

switch (x)

{

case 0:

b++;

case 1:

a++;

case 2:

a++;

b++;

}

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

}

24、请阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。

#include <stdio.h>

void main()

{

int x = 1, y = 0, a = 0, b = 0;

switch (x)

{

case 1:

switch (y)

{

case 0:

a++;

break;

case 1:

b++;

break;

}

case 2:

a++;

b++;

break;

}

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

}

25、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:通过输入成绩,为成绩评等级,90~100为A,80~89为B,70~79为C,60~69为D,60以下为E。

#include <stdio.h>

void main()

{

int score;

printf("Please input your score:");

scanf("%d", &score);

switch ( )

{

case 10:

case 9:

printf("Your level is A.\n");

break;

case 8:

printf("Your level is B.\n");

break;

case 7:

printf("Your level is C.\n");

break;

case 6:

printf("Your level is D.\n");

break;

printf("Your level is E.\n");

}

}

26、请阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。

#include<stdio.h>

void main()

{

int y=10;

while(y--);

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

}

27、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:计算并输出下列级数的前N项之和SN,直到SN大于Q为止。

#include<stdio.h>

double fun(double q)

{

int n;

double s;

n = 2;

s = 2.0;

while ( )

{

s = s + (double)(n+1)/n;

}

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

}

void main()

{

printf("%f\n", fun(50));

}

C语言程序设计教程第三章练习题题目.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)