for(i=10;i<9;i++) 该循环共执行了()次.> A、0
B、1
C、9
D、10
B、1
C、9
D、10
第1题
A.int i=10;
B.for( int i=1:i<10;i++)
while(1) {
} i--;
i--; }
if(i==1)break;
}
C.int i=0;
D.int i=1;
do{ for(;;)i=i+1;
i++;
}while(i>=0):
第2题
有如下程序
#include(iostream.h>
voidmain( )
{charch[2][5]={"6937","8254"),*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j])'\0';j+=2)
s=10*s+p[i][j]一'0';
cout<<S;}
该程序的输出结果是( )。
A.69825
B.63825
C.6385
D.693825
【我提交的答案】: D |
【参考答案与解析】: 正确答案:C |
C。【解析】该题主要要搞清楚以下几点:①定义了一个指针数组char*p[2]后,程序中第一个循环“for(i=0;i(2;i++)p[i]=ch[i]”的作用是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p[1]元素指向了二维数组ch的第二行字符串,这样,就使指针数组P和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串“6937”,第二行ch[1]中的内容为字符串“8254”。③程序中第二个循环中的循环体“s=s*10+p[i][j]-'0'”的功能是这样的,每执行一次,将s中的值乘以10(即将s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前p[i][j]中的字符量转换为相应的数字,然后把这个数字加到s的个位上。④注意到内层循环的循环条件p[i][3]>'\0'是指p[i][j]中的字符只要不是字符串结束标志'\0'就继续循环,语句j+=2;是使下标j每次增加2,即一个隔一个地从p[i]所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从p[0]所指向的字符串“6937”中一个隔一个地取出字符,分别是“6”和“3”,然后从p[1]所指向的字符串“8254”中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相加运算后,结果s中的值应该是6385。
第3题
下列程序的输出结果是( )。
#include<stdio.h>
main( )
{ int a=0,i;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=1;
case 1:
case 2:a+=2;
default:a+=3;
}
}
printf("%d",i);
}A.19
B.1
C.6
D.8
【我提交的答案】: |
【参考答案与解析】: 正确答案:A |
本题考查switch语句。当i=1时,执行case l,因为没有遇到break语句,所以依次往下运行,“a=a+2=2,a=a+3=5”;当i=2时,执行case 2,因为没有遇到break语句,所以依次往下执行,“a=a+2=7,a=a+3=10”;当i=3时,执行case 3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a=a+2=13,a=a+3=16;当i=4时,执行default,a=a+3=19,结束循环。
为什么不是输出 printf(“%d”,a);
第4题
编写程序,输出一维数组a中的元素最小值及其下标。 编程提示: 1.定义一个整型变量存放最小值下标,将其初始化为0 ,例如:int p=0;即从数组第零个元素开始判断。 2.通过循环,依次判断数组中的每一个元素a[i]是否小于a[p],如果是,则将p和a[p]的值作相应的改变。/* c6-5.c 输出一维数组中元素的最小值及其下标*/ #include "stdio.h" int main( ) { int i,m,p,a[10]={9,8,7,6,1,3,5,18,2,4}; /* m为最小值,p为其下标 */ m=a[0]; p=0; for(i=1;i<10;i++) if { ; p="i;}" * 请补充完整此语句 printf("%d,%d\n",a[p],p); 输出一维数组a中的最小值及其下标 return 0;>
第5题
Private Sub Command1 Click( )
x=10:Y=0
For i=l To 5
Do
x=x-2
y=y+2
Loop Until y>5 Or x<-l
Nex1
End Sub
运行程序,其中Do循环执行的次数是( )。
A.15
B.10
C.7
D.3
第6题
Private Sub Commandl—Click()
x=10:u=0
For i=1 TO 5
Do
x=x-2
y=y+2
Loop Until y>5 Or x<一l
Next
End Sub
运行程序,其中Do循环执行的次数是
A.15
B.10
C.7
D.3
第7题
Private Sub Commandl—Click()
x=10:u=0
For i=1 TO 5
Do
x=x-2
y=y+2
Loop Until y>5 Or x<一l
Next
End Sub
运行程序,其中Do循环执行的次数是
A.15
B.10
C.7
D.3
第8题
【说明】
计算一个整数数组a的最长递增子序列长度的方法描述如下:
假设数组a的长度为n,用数组b的元素b[i]记录以a[i](0≤i<n)为结尾元素的最长
递增子序列的长度,则数组a的最长递增子序列的长度为器;其中b[i]满足最优子结构,可递归定义为:
【c代码】
下面是算法的c语言实现。
(1)常量和变量说明
a:长度为n的整数数组,待求其最长递增子序列
b:长度为n的数组,b[i]记录以a[i](0≤i<n)为结尾元素的最长递增子序列的长度,
其中0≤i<n
len:最长递增子序列的长度
i.j:循环变量
temp,临时变量
(2)C程序
include <stdio . h>
int maxL (int *b. int n) {
int i. temp =0;
For(i = 0; i < n; i++){
if (b[i] > temp )
Temp= b[i];
}
Return temp;
【问题l】(8分)
根据说明和C代码,填充C代码中的空(1)~(4)。
【问题2】(4分)
根据说明和C代码,算法采用了(5)设计策略,时间复杂度为(6)(用O符号表示)。
【问题3】(3分)
已知数组a={3,10,5,15,6,8},根据说明和C代码,给出数组b的元素值。
第9题
A.15
B.10
C.7
D.3
第10题
计算下列级数,直到第i项的值<10-5时结束。 style="border:0px currentColor;border-image:none;vertical-align:top;max-height:520px;max-width:520px" src="http://static.jiandati.com/28a8531-chaoxing2016-21419.gif"> 以“昵称-6-3”为项目名保存。项目完成后,将整个项目文件夹压缩成:昵称-6-3.rar,以附件形式提交。 【提示】 本题的关键是找规律并写出通项。本题规律为:第i项的分母是第i-1项的分母加上i。即分母通项为:。 因为事先不知循环次数,一般应使用Do While循环结构;当然也可使用For循环结构,设置循环的终值为一个较大的值,当满足精度后退出循环。运行结果见图6.3。图6.3 运行结果
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!