C语言期末复习题答案(3)

2020-03-29 12:35

{

int i,sum ;

//sum没有赋初值

for(i=1;i<6;i++) sum +=i; printf(\}

A.14 B.不确定

C.15

D.0

7.以下叙述中正确的是( )。

A.do-while语句构成的循环不能用其他语句构成的循环来代替 B.do-while语句构成的循环只能用break语句退出

C.用do-while语句构成的循环,在while后的表达式为非零时结束循环 D.用do-while语句构成的循环,在while后的表达式为零时结束循环 8.下面选项中,没有构成死循环的程序段是()。 A.int i=100;

while(1){i=i% 100+1;if(i>100)break;} //没有循环增量i++ B.for(;;); C.int k=1000;

do

{++k;}while(k>=10000); D.int s=36;

while(s); --s;

9.下面的程序段中while循环执行的次数是()。

int k=0; while(k=1)k++;

//== =

A.无限次 B.有语法错,不能执行 C.一次也不执行 D.执行1次 10.下列选项中与语句: while() {

if(i>=100) break; s+=i; i++; }

功能相同的语句是( )。

A.for(;i<100;i++) s=s+i; B.for(;i<=100;i++) s+=i; C.for(;i<100;i++,s=s+i); D.for(;i>=100;i++,s=s+i); 二、填空题

1.这个while循环的输出结果是 1 4 9 16 25 。

//while(s);后面不能有分号

//k=1001<10000

// for(;;)相当于while(1)

i = 0; while (i < 5) { i++;

printf(\}

2.有以下程序: #include main() { char c;

while((c=getchar())!='?') putchar(--c); }

程序运行时,如果从键盘输入:B ?C?<回车>,则输出结果为 A 。 3.假定a和b为int型变量,执行下面程序段后b的值为 8 。 a=1;b=10; do {

b-=a;a++; } while(b--<0);

4.若所有变量都已正确定义,下列程序的输出结果是 YESYES 。

for(i=0;i<2;i++) printf(“YES”); printf(“\\n”);

5.执行下列程序后,输出“*”号的个数是6 。 #include”stdio.h” main() { int i,j;

for(i=1;i<5;i++) for(j=2;j<=i;j++) putchar(‘*’); 三、编程题

1.计算1-3+5-7+…-99+101的值。

2.编写程序从输入的三个数中找出最大值和最小值。

3.编写程序,判断从键盘输入的一个整数是否是素数,是素数就输出“This is a prime number”,不是素数就输出“This is not a prime number”。

4.求10到100之间的全部素数。 5.编写程序输出如下所示的图形。

* *** ***** ******* *********

数组

一、选择题

(1) 在C语言中,引用数组元素时,其数组下标的数据类型允许是 。

A)整型常量 B)整型表达式 C)整形常量或整形表达式 C)任何类型的表达式

(2) 以下对一维整型数组a的正确说明是 。

A)int a(10) ; C)int n; scanf(“%d”,&n);

int a[n];

B)int n=10,a[n]; D)#define SIZE 10 int a[SIZE];

( 3) 若有定义:int a[10],则对数组a元素的正确引用是 。

A)a[10] B)a[3.5] C)a(5) D)a[10-10]

(4) 以下能对一维数组a进行正确初始化的语句是 。

A)int a[10]={0,0,0,0,0}; B)int a[10]={} ; C)int a[] = {0} ; D)int a[10]={10*1} ;

(5) 若有定义:int a[3][4],则对数组a元素的正确引用是 。

A)a[2][3] B)a[1,3] C)a(5) D)a[10-10]

(6) 以下能对二维数组a进行正确初始化的语句是 。

A)int a[2][]={{1,0,1},{5,2,3}} ; B)int a[][3]={{1,2,3},{4,5,6}} ; C)int a[2][4]={{1,2,3},{4,5},{6}} ; D)int a[][3]={{1,0,1},{},{1,1}} ;

(7) 若有说明:int a[3][4]={0};则下面正确的叙述是 。

A)只有元素a[0][0]可得到初值0 B)此说明语句不正确

C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0

(8) 若有说明:int a[][4]={0,0};则下面不正确的叙述是 。

A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1

C)因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1 D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

(9) 若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为。 (设a[0][0]位于数组的第一个位置上)

A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1

(10) 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维大小是 。

A)2 B)3 C)4 D)无确定值

(11) 下面程序段的输出结果是 。

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

for (k=0;k<3;k++) printf(“%d”,a[k][2-k]); A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7

(12)下面是对s的初始化,其中不正确的是 。

A)char s[5]={“abc”}; B)char s[5]={‘a’,’b’,’c’}; C)char s[5]=” ”; D)char s[5]=”abcdef”;

(13)下面程序段的输出结果是 。

char c[5]={‘a’,’b’,’\\0’,’c’,’\\0’} printf(“%s”,c);

A)’a’’b’ B)ab C)ab c D)abc

(14)判断字符串a和b是否相等,应当使用 。

A)if (a==b) B)if (a=b) C)if (strcpy(a,b)) D) if (strcmp(a,b))

(15)下列四种数组定义中,合法的数组定义是( )。

A) char a[ ]=“hello” ; B) int a[4]={4,3,2,1,0}; C) char a=“hello” ; D) char a[5]= “hello” ; (16)已知数组float a[4][3];该数组行下标的范围是( )。

A) 0—3 B) 1—3 C) 0—2 D) 1—2 二、写出运行结果。 1.#include main() {

int i,t,a[5]={1,2,3,4,5}; for(i=0;i<2;i++) {

}

for(i=0;i<5;i++) printf(\

printf(\

t=a[i]; a[i]=a[4-i]; a[4-i]=t;

}

结果:5 4 3 2 1。 2. #include main() {

int i,j,row,col,min;

int a[3][4]={{1,2,3,4},{9,8,7,6},{ 1, 2,0,5}}; min=a[0][0]; row=0; col=0; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]

min=a[i][j]; row=i; col=j; }

printf(\}

结果:min=0,row=2,col=2。 三、编程题。

1. 用数组求Fibonacci数列前20个数,Fibonacci数列指的是这样一个数列:

1,1,2,3,5,8,13,21……这个数列从第三项开始,每一项都等于前两项之和。

#include void main() {

int fib[20]={1,1}; int i;

for(i=2;i<20;i++) {

fib[i]=fib[i-1]+fib[i-2]; }

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

printf(\ i++; if(i%5==0)


C语言期末复习题答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:七年级科学上期中测试卷一新浙教版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: