以下程序用于求1+1/2+1/3+......+1/9,指出程序的错误行() #include<stdio.h> void main() { int i; float t,s=0; A:for(i=1;i<10;i++); { b: t="1/i;" c: s+="t;" } d: printf("%.2f",s);> A、A标号对应的代码行
B、B标号对应的代码行
C、C标号对应的代码行
D、D标号对应的代码行
B、B标号对应的代码行
C、C标号对应的代码行
D、D标号对应的代码行
第1题
A.a=/*pl-m;
B.b=*p1+*p2+6;
C.k=1,m=8;
D.pl=&k,p2-&m;
第3题
只修改程序错误处,重写程序不得分。 直接在程序上修改,直至运行通过。 error1 //输入一个整数,判别它是奇数还是偶数。 #include <stdio.h> int main() { int n; scanf("%d",n); if (n%2=0) printf("%d是奇数\n", n); else printf("%d是偶数\n", n); return 0; } error2 //输入一个字符,如果大写字母,转换成小写字母输出,否则按原样输出。 #include <stdio.h> int main() { char c; scanf("%c",&c); if ('c'>='A' && 'c' <='z') printf("%c\n", c-('a'+'a')); else printf("%c\n",c); return 0; } error3 输入一个不超过4位的整数,确定这个数的位数并输出。 提示:利用if语句进行数的判定。如果数在0~9之间,位数为1; 如果数在10~99之间,位数为2,依此类推。 #include> int main() { int n; scanf("%d",&n); if (n>=0 && n <=9) printf("1\n"); elseif (n printf("2\n"); else if>=100 || n <=999) printf("3\n"); elseif (n printf("4\n"); return 0; } error4 用for循环语句编程输出1~100之间的所有奇数,两数之间以空格分隔。 #include> int main() { int i; for(i=1, i<=100, i+2) printf("%d ", i); return 0; } error5 用for循环语句编程输出a~z之间的所有字符,字母之间以空格分隔,要求一行输出8个字符。 #include> int main() { char c; int count=0; for(c='A'; c<='z'; c++); printf("%c ", c); count++; if(count%8="=0)" printf("\n"); return 0; } error6 输出100~200之间所有能同时被3和7整除的数,要求每行输出4个数。 #include> int main() { int i; int count; for(i=100; i<=200; i++) { if (i%3="=0" && i%7="=0)" printf("%d ", i); count++; } if(count%4="=0)" printf("\n"); return 0; error7 计算1+1 2+1 3+1 4+...+1 200的值并输出结果。 #include> int main() { int i; float sum; for(i=1; i<=200; i++) sum="sum+1/i;" printf("sum="%d\n",sum);" return 0; } error8 计算1-3+5-7+…-99+101的值并输出结果。 #include> int main() { int i, sum=0, sign = 1; for(i=1; 1<=101; i+="2)" { i="sign*i;" sum="sum+i;" sign="-sign;" } printf("sum="%d\n",sum);" return 0; error9 找出所有"水仙花数"。所谓的"水仙花数"是指一个三位整数, 其各位数字立方和等于该数本身。例如,153是水仙花数,因为153="13+53+33。" #include> int main() { int i; int a,b,c; a = i/100; b = i/10%10; c = i%10; for(i=100;i<=999;i++) { if(a*a*a+b*b*b+c*c*c="=" i) printf("%d\t",i); } return 0; error10 找出所有"水仙花数"。所谓的"水仙花数"是指一个三位整数, 其各位数字立方和等于该数本身。例如,153是水仙花数,因为153="13+53+33。" #include> int main() { int i; int a,b,c; for(i=100;i<=999;i++) { a="i/100;" b="i/10;" c="i%10;" if(a*a+b*b+c^2="i)" printf("%d\t",i); } return 0; error11 输入一个正整数(不大于100000),计算该整数的位数及各位数字之和。 #include> int main() { int n,x; int count = 0, sum = 0; scanf("%d",n); while(x>0) { count++; sum += n%10; x = n/10; } printf("位数:%d\t, 各位之和:%d\n", count, sum); return 0; } error12 //一个正整数如果恰好等于它的因子(不包括自己)之和,这个数就称为"完数"。 //例如,6的因子为1、2、3,且6=1+2+3,因此6是完数。 //输入一个正整数,判断该数是否为完数。 #include <stdio.h> int main() { int i,n; int sum ; scanf("%d",&n); for(i=1;i<=n;i++) 0 { if n%i="=" sum +="i;" } if(n="=sum)" printf("%d是完数\n", n); else printf("%d不是完数\n", n); return 0; error13 编写因式分解程序,输入p,q,如果可以因式分解,输出结果;如果不能输出"无整数分解" #include> //添加#include <math.h> int main() { int p,q; int i,j; int flag = 0; scanf("%d%d",&p,&q); for(i=1;i<=sqrt(q);i++) { if(q%i="=0)" j="q/i;" if(i+j="=p)" flag="1;" else } if(flag="=0)" printf("无整数分解\n"); printf("x^2+%dx+%d="(x+%d)(x+%d)\n",p,q,i,j);" return 0;>
第4题
A、1
B、2
C、main,proc函数中都定义了变量x,程序错误
D、0
第5题
A、**0****2**
B、**0**
C、**0****1****2**
D、有语法错误
第6题
第7题
阅读下列说明和程序,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
在开发某嵌入式系统时,设计人员根据系统要求,分别编写了相关程序,其中:
【程序1】是李工编写的一个数据交换子程序。
【程序2】是赵工编写的一段利用递归方法判别链表表示的两个数据结构是否相等的程序,若相等则返回值为1,否则返回为0。判别的准则是若两个链表的首指针相等,则相等;否则进行内部元素比较,元素中的itemid表示后面联合体un的有效性,itemid为0时,联合体un里面的data项有效,否则联合体un中的link项有效。
【程序1】
#include <stdio.h>
swap(int x,int y){
int t:
t= x;
x=y;
y=t;
}
main() {
int a,b;
a=3;
b=4;
swap(a,b);
printf(”%d, %d\n",a,b);
}
【程序2】
typedef struct Item {
int itemid;
union {
char data;
struct Item *link;
}un;
struct Item *nextItem;
} ItemNode;
int EqualItem( ItemNode*x,ItemNode*y){
int res;
if(x==y) retun1;
if(1){
if (2){
If(x->itemid==0){
res= (3) ;
}
else{
res= (4) ;
}
if (res){
retun (5) ;
}
}
}
Return0;
}
【问题1】(6分)
执行【程序1】后,打印出来的a=3,b=4;并没有完成数据交换,请指出李工的问题?并改正程序错误。将答案填写在答题纸中对应的栏目。
【问题2】(5分)
仔细阅读并分析【程序2】中的C语言代码,完成其中(1)~(5)空白填空,将
答案填入答题纸的对应栏内。
【问题3】(4分)
李工编写某嵌入式软件时,遇到了一些问题,请帮助李工解答下面2个问题,并将答案填写在答题纸中对应的栏目。
(1)李工在编译时,程序没有通过编译,经检查程序后将文件头的#include<filename.h>改为#include“filename.h”后编译通过,请问#include <filename.h>和#include“filename.h”的区别是什么?
(2)李工在编写一段C++程序时,需要调用一段已编译的C语言函数,为什么要加exten“C”?
第8题
第9题
阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【程序5说明】
设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根结点的值部分(设为一个字符)和用"()"括起来的各子树的列表(如有子树的话),各子列表间用","分隔。例如下面的三叉树可用列表a(b(c,d),e,f(g,h,i))表示。
本程序输入列表,生成一棵M叉树,并由M叉树输出列表。假定输入无错误。
【程序5】
#include<stdio.h>
#include<stdli
B.h>
#define M 3
typedef struct node{char val;
struct node*subTree[M];
}NODE;
char buf[255],*str=buf;
NODE*d=NULL
NODE*makeTree()/*由列表生成M叉树*/
{int k;NODE*s;
s= (1) ;
s->val=*str++;
for(k=0;k<M;k++)s->subTree[k]=NULL;
if(*str=′(′){
k=0;
do{str++;
s->subTree[k]= (2) ;
if(*str==′)′){str++;break;}
k=k+1;
}while( (3) );
}
return s;
}
void walkTree(NODE*t)/*由M叉树输出列表*/
{int i;
if(t!=NULL){
(4)
if(t->subTree[0]==NULL)return;
putchar(′(′);
for(i=0;i<M;i++){
(5) ;
if(i!=M-1&&t->subTree[i+1]!= NULL)
putchar(′,′);
}
putchar(′)′);
}
}
void main()
{printf("Enter exp:");
scanf("%s",str);
d=makeTree();
walkTree(d);putchar(′\n′);
}
第10题
本程序中,函数fun的功能是计算整数n的阶乘。程序中存在若干错误,请找出并改正。(注意:不改动程序的结构,不得增行或删行。)
#include <stdio.h>
double fun(int n)
{ double result=1.0;
while (n>1 && n<170)
result*=- -n;
return;
}
main()
{ int n;
clrscr ();
printf(“Enter an integer:”) ;
scanf(“%d”,&n);
printf(“\n\n%d!=%lg\n\n”,n,fun(n)) ;
nono ();
{int n,i;
FILE *rf, *wf ;
rf = fopen (“g03.in”,“r”) ;
wf = fopen(“g03.out”,“w”) ;
for (i=1; i<=10;i++)
{ fscanf(rf, “%d”,&n) ;
fprintf (wf, “%lg\n”,fun( n ) );
}
fclose (rf) ;
fclose (wf) ;
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!