计算机二级

( )表达式不可以作为循环条件A、i++;B、i>5;C、bEqual=str.equals("q");D、count==i;

题目

( )表达式不可以作为循环条件

A、i++;

B、i>5;

C、bEqual=str.equals("q");

D、count==i;

参考答案和解析
正确答案:A
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。main(){int i,a[20],sun,counr;sum=count=0; for(i=0;i<20;i++) scanf("%d",); for(i=0;i<20;i++){ if(a[i]>0){coutnt++; sum+=();}}printf(“sum=%d,count=%d\n,sum,count);}


正确答案:&a[i]或a+i a[i]或*(a+i)
将输入的数据存入到数组a中,然后对其进行判断,如果大于0,count++,sum+=a[i]

第2题:

有以下程序 void f(int *q) { int i=0; for(;i<5;i++) (*q)++; } main() { int a[5]={1,2,3,4,5},i; f(a); for(i=0;i<5;i++)printf("%d,",a[i]); } 程序运行后的输出结果是

A.2,2,3,4,5,

B.6,2,3,4,5,

C.1,2,3,4,5,

D.2,3,4,5,6,


正确答案:B
解析:调用函数f()时,将数组a的地址传递给了指针q,此时q指向的就是数组a的第一个元素a[0]。在5次循环过程中,q始终指向a[0],因此a [0]的值增加了5。最后的输出结果为“6,2,3,4,5”。

第3题:

有以下程序

void f(int *q)

{ int i=0;

for( ; i<5;i++)(*q)++;

}

main( )

{ int a[5]={1,2,3,4,5},i;

f(a);

for(i=0;i<5;i++)printf("%d,",a[i]);

}

程序运行后的输出结果是

A)2,2,3,4,5,

B)6,2,3,4,5,

C)1,2,3,4,5,

D) 2,3,4,5,6,


正确答案:B

第4题:

以下程序运行后的输出结果【 】。

struct NODE

{int k;

struct NODE *link;

};

main()

{structNODEm[5],*p=m,*q=m+4;

int i=0;

while(p!=q){

p->k=++i;p++;

q->k=i++;q-;

}

q->k=i;

for(i=0;i<5;i++)printf("%d",m[i].k);

printf("\n");

}


正确答案:13431
13431 解析:程序执行过程如下:
p=m,q=m+4,条件9!=q成立,执行p->k=++i;,由于是“前加”,所以m[0].k=1,执行p++后p=m+1;执行q->k=i++;,由于是“后加”,所以m[4].k=1,然后使得i加上1,即i=2,q-后,q=m+3: p=m+1,q=m+3,条件p!=q成立,执行p->k=++i;,由于是“前加”,所以i=3,m[0].k=3,执行p++后p=m+2:执行 p->k=++i;,由于是“后加”,所以m[4].k=3,i=4,q-后,q=m+2; p=m+2,q=m+2,条件p!=q不成立,则执行p->k=i;即m[2].k-4;故输出的值为13431。

第5题:

以下程序中,while循环的循环次数是

main( )

{int i=0;

while(i<10)

{if(i<1)continue;

if(i= =5)break;

i++;)

}

A.1

B.10

C.6

D.死循环,不能确定次数


正确答案:D
解析:本题考查continue在循环语句中的作用。当i=0时,执行第一个if语句,为真,跳过后面的第二个if和i++,重新判断while的条件,此时i并没有任何改变,依然是0,因此将陷入一个无限循环中。

第6题:

以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填空。main(){int i,a[20],sum,count;sum=count=【】;for(i=0; i<20;i++)scanf("%d",【】);for(i=0; i<20;i++) { if(a[i]>0) { count++; sum+=【】; } }printf("sum=%d.count=%d\n",sum,count);}


正确答案:0
&a[i]
a[i]
首先将和值和个数值赋值为0,将输入的数赋给数组,计算数组元素中大于0的数的和值。

第7题:

下列程序的输出结果是______。 main() { int i; for(i=1; i+1; i++) { if(i>4){printf("%d",i++);break;} } printf("%d",i++); }

A.55

B.56

C.程序错误,没有输出

D.循环条件永远为真,死循环


正确答案:B
解析:本程序中有个for循环,但注意到for循环的条件是“i+1”,也就是只要i+1的值为真(非零值均为真),就执行循环。当i=1的时,i+1的值为真,判断if条件不成立,执行i++,输出i的值为5。

第8题:

现有如下程序段

#include "stdio.h"

main()

{ int k[30]={12,324,45,6,768,98,21,34,453,456};

int count=0,i=0;

while(k[i])

{ if(k[i]%2==0‖k[i]%5==0)count++;

i++; }

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

则程序段的输出结果为

A.7,8

B.8,8

C.7,10

D.8,10


正确答案:D

第9题:

在下面循环语句中循环体执行的次数为( )。int i=0; do i++; while(i*i<10);A、4B、3C、5D、2

在下面循环语句中循环体执行的次数为( )。

int i=0; do i++; while(i*i<10);

A、4

B、3

C、5

D、2


参考答案A

第10题:

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【程序2.1说明】

已知一个排好序的数组,现输入一个数,要求按原来的顺序规律,将它插入到数组中。

【程序2.1】

include <stdioh>

define N 100

void main()

{

float a[N+l],x;

int i,p;

printf("输入已经排好序的数列: ");

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

scanf(%f",&a[i]);

printf("输入要插入的数:");

scanf("%f",&x);

for(i=0,p=N; i<N; i++)

if(x<a[i])

{

(1)

break;

}

for(i=N-1; i>=p; i--)

(2)

(3)

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

prinff("%f\t",a[i]);

}

【程序2.2说明】

本程序用变量count统计文件中字符的个数。

【程序2.2】

include <stdio.h>

include <stdlib.h>

void main()

{

FILE *fp;

long count=0;

if((fp=fopen("letter.txt","r"))==NULL)

{

printf("can not open file\n");

exit(0);

}

while(!feof(fp))

{

(4)

count++;

}

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

(5)

}


正确答案:(1)p=i (2)a[i+1]=a[i]; (3)a[p]=x; (4)fgetc(fp); (5)fclose(fp);
(1)p=i (2)a[i+1]=a[i]; (3)a[p]=x; (4)fgetc(fp); (5)fclose(fp); 解析:本题考查在C语言中实现对数组的插入和对文件中字符个数的统计。
我们先来看程序2.1。题目要求在程序2.1中实现在排好序的数组中插入一个数,但不能改变数组中数字排序的规律。由于数组是已经排好序的,它有可能是按不递减的方法排序,也有可能是按不递增的方法排序。在插入时,从数组中第一个数开始,逐个进行比较,直到找到比其大或相等的数,在其前面进行插入,在插入前应该先将数组中的元素逐个后移。
下面我们来看代码。代码中有三个循环,第(1)空在第一个循环体下面的条件判断语句里,条件判断语句是判断要插入的数J与数组中元素的大小,如果数x小于数组中的元素,就执行第(1)空的语句。从上面的分析,再结合第二个循环语句的条件,我们可以知道,此空的作用是记录数要插入的位置,并把这个结果存放在变量p中,所以,答案为p=i。
第(2)空所在的位置是第二个循环体下面,根据分析,要完成的任务应该是将数组中要插入位置后的元素逐个往后移动。所以,此空的答案为a[i+1]=a[i]。
在完成了上述两空之后,再结合整个程序来看,很明显还有一个功能没有完成,那就是插入数x,第(3)空就是用于完成这个任务的。由于在代码的前面已经记录下了要插入的位置,所以,此空答案为a[p]=x。
在程序2.2中,题目要求完成的任务是用变量count统计文件中字符的个数,要实现对文件中字符个数的统计,首先需要我们判断出哪些是字符,这就涉及C语言中对文件中字符的判定。此外,还需要我们掌握对文件的基本操作。
下面,我们来看程序2.2的代码。首先用一个条件判断语句来打开一个文件,如果打开成功,则执行下面的while循环语句,循环体的功能是对文件中的内容逐个判断,如果是字符,则统计变量count加1,因此,第(4)空的功能就是要找出文件中的所有字符。这里没有条件判断语句来判段是否是字符,需要用到C语言中对文件处理的一个函数fgetc(),其作用是可以取出文件中所有的字符,因此,此空答案为fgetc(fp)。
第(5)空在代码的最后面,如果我们对文件操作很熟悉的话,不难发现文件在打开后还没有关闭,此空要实现的功能是关闭文件,因此,此空答案为fclose(fp)。

更多相关问题