A.0
B.1
C.6
D.12
第1题
功能:以每行5个数来输出300以内(包括300)能被7或17整除的偶数,并求出其和。 #include <conio.h> int main() { int i,n,sum; sum=0; _________ ; for(i=1; i<=300 ;i++) if( i%7="=0||i%17==0)" if(i%2="=0)" { sum="sum+i;" n++; printf("%6d",i); n%5="=0" ) _____________; } printf("\ntotal="%d\n",sum);" return 0;>
第2题
47、定义一个指针变量p,使它指向float类型的内存空间_______________。
第3题
9、下面程序段的输出结果是多少。 int i = 0,sum = 1; do{ sum += i++; }while(i<6); system.out.println("sum=" + sum); <br> <p class=" answer">
10、标有/**/的语句的执行次数是多少。int y = 0,i; for(i=0;i<20;i++){ if(i%2="=0)" continue; y +="i;" * 考虑本条语句的执行次数 }>
第4题
B、50
C、5
D、10
第5题
阅读以下说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。
【说明1】
下面的函数countChar(char *text)统计字符串text中不同的英文字母数和每个英文字
母出现的次数(英文字母不区分大小写)。
【C代码1】
Int countchar(char*text)
{
int i,sum=O; /*sum保存不同的英文字母数*/
char *ptr;
int c[26]={0}; /*数组c保存每个英文字母出现的次数*/
/*c[0]记录字母A或a的次数,c[1]记录字母B或b的次数,依此类推*/
ptr=(1); /* ptr初始时指向字符串的首字符*/
while (*ptr) {
if (isupper (*ptr) )
c[*ptr一’A’]++;
else &39;
if (islower (*ptr) )
c[*ptr一’a’]++;
(2); /*指向下一个与字符*/
}
for ( i=0. i<26; i++ )
If(3)sum++;
return sum;
}
【说明2]
将下面C代码2中的空缺补全后运行,使其产生以下输出。
f2: f2:f2:2
f3: f3:1
【C代码2]
include <stdio . h>
int fl (int (*f) (int)) .
int f2 (int) ;
int f3 (int) ;
int main ()
{
Printf(“%d\n”,f1(4))
Printf(“%d\n”,f1(5))
return 0;
}
int fl(int (*f) (int) }
{
int n=O;
/*通过函数指针实现函数调用,以返回值作为循环条件*/
While(6) n++
return n;
}
int f2 (int n)
{
printf ("f2: ") ;
return n*n-4;
}
int f3 (int n)
{
printf ("f3: ") ;
return n-1
}
第6题
例如,给定的l0个数为12.0,9.0,26.0,5.0,6.0,31.0,9.0,3.0,8.0,18.0,输出为S=8.877500。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数proe的横线上填人所编写
的若干表达式或语句。
试题程序:
include<stdio.h>
include<math.h>
double proc(double x[10])
{
int i;
double avg=0.0;
double sum=0.0;
double abs=0.0;
double sd;
for(i=0;i<10;i++)
【1】;
avg=sum/10;
for(i=0;i<10;i++)
【2】;
sd=【3】;
return sd;
}
void main
{
double s,str[10]={12.0,9.0,26.0,5.0,6.0,31.0,9.0,3.0,8.0,18.0};
int i;
printf("\nThe original data is:\n");
for(i=0;i<10;i++)
printf("%6.If",str[i]);
printf("\n\n");
s—proc(str);
printf("s=%f\n\n",s);
}
第7题
B、26
C、18
D、48
第8题
阅读以下说明和C 函数,将应填入(n) 处的字句写在答题纸的对应栏内。
[说明]
某班级有N 名学生,他们可根据自己的情况选修名称和数量不尽相同的课程。设N,如图5-1 所示。
程序中相应的类型定义如下:
define N 6
struct node{
char cname[5]; /*课程名*/
int grade; /*成绩*/
struct node *next; /*指针,指示某学生选修的下一门课程及成绩*/
};
struct student{
char xh[5]; /*学号*/
char name[20]; /*姓名*/
struct node *link; /*指针,指示出选修的课程及成绩链表*/
}stud_info[N];
stud_info[]为一个全局数组。
函数func (char kc[],int *num)的功能是统计选修了课程名为kc 的学生的人数,
并返回该课程的平均成绩(若无人选修该课程,则平均成绩为0),参数num 带回选修课程kc 的学生人数。
[C函数]
double func (char kc[],int *num)
{
int i,count = 0,sum = 0; /*count用于记录选修课程名为kc 的学生的人数*/
double avg = 0.0;
struct node *p;
for(i = 0; i < N; i++){
p = (1) ; /*取第i 个学生所修课程链表的头指针*/
while (p) {
if ( (2) ) {
sum = (3) ;
count++;
break;;
}/*if*/
p = p->next;
}/*while*/
}
(4) ;
if ( (5) )
avg = (double)sum / count; /* 计算平均成绩 */
return avg;
}/*func*/
第9题
某程序中有如下循环代码段P: for (i=0; i<n; 1 2 3 4 5 6 i++) sum+="A[i];" 假设编译时变量sum和i分别分配在寄存器r1和r2中。常量n在寄存器r6中,数组a的首地址在寄存器r3中,程序段p的起始地址为08048100h,对应汇编代码和机器代码如下表所示: 编号 地址 机器码 汇编码 操作注释 08048100h 00022080h loop: sll r4,r2,2 08048104h 00083020h add r4,r4,r3 (r4)+(r3)→r4 08048108h 8c850000h load r5,0(r4) ((r4)+0)→r5 0804810ch 00250820h r1,r1,r5 (r1)+(r5)→r1 08048110h 20420001h addi r2,r2,1 (r2)+1→r2 08048114h 1446fffah bne r2,r6,loop if (r2) ≠ (r6) goto loop 如果执行上述代码的计算机采用32位定长指令字,其中的分支指令bne格式如下: 31:26 25:21 20:16 15:0 op rs rd offset 其中的op为操作码,rs和rd为寄存器编号,offset为偏移量(用补码表示),请回答下列问题: 计算机的存储器编址单位是( ) a. 8位 b. 16位 c. 32位 d. 64位>
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!