求几道C语言题的答案

二、写出程序结果题1.源程序如下,运行时假定键盘输入字符串为``2012``#includevoidmain(void){intn=0;charc;while((c=ge... 二、写出程序结果题
1. 源程序如下,运行时假定键盘输入字符串为``2012``
#include
void main(void)
{
int n=0;
char c;
while( (c=getchar( )) ! =`\n` ) /*字符型数字*/
{
if (c>=`0`&&c<=`9` )
n = n*10 + c- `0` ; /*数字*/
}
printf(“value=%d|n” ,n);
}
2. 源程序如下:
#include
void main(void)
{
int num[9]={399,398,397,396,395,299,290,311,301};
int score[9]={81,85,59,77,90,66,89,93,73};
int iMax,iPos,i;
iPos=0;
iMax=score[iPos];
for(i=1;i<9;i++)
if(score>iMax)
{
iPos=i;
iMax=score[iPox];
}
printf(“num=%d,score=%d”,num[iPos];score[iPos]);
}
结果为:
3. 源程序如下,运行时假定键盘输入数据为:1 2 3 4 5 6 7 8 9 10
#include
void main(void)
{
int i,a[10];
int *p;
p=a;
for(i=0;i<10;i++)
scanf(“%d“,p++);
for(p=a;p< SPAN>;p++)
if (*p%2)printf(“%3d”,*p);
}
结果为:
4. 源程序如下,两次运行,分别输入数据13和21
#include
#include
void main(void)
{
int n,s;
scant (“%d”,&n);
s=panduan( n);
if(s==1)printf(“yes\n”);
else printf(“no\n);
}
int panduan(int n)
{
int k,j;
k=(int)sqrt((double)n);
for(j=2;j<=k,j++)
{
if(n%j==0) break;
}
if(j>k) retum(1);
else retum(0);
}
结果为

5、请写出以下程序的输出结果(9)________________。
main()
{ int a=100;
if(a>100) printf(“%d\n”,a>100);
else printf(“%d\n”,a<=100);
}
6、以下程序段的输出结果是 (10) 。
 int k,n,m;
n=10; m=1; k=1;
while(k<=n) m*=2;
printf(“%d\n”,m);
7、以下程序段的输出结果是___(18)______
#include<stdio.h>
main( )
{ char ch[2][5]={“6934”,“8254”},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(j=0;p[i][j]>=’0’&&p[i][j]<=’9’;j+=2)
s=10*s+p[i][j]-‘0’;
printf(%d\n”,s); }
8、有以下程序段:
s=1.0;
for(k=1;k<=n;k++) s=s+1.0/(k*(k+1));
printf(“%f\n”,s);
请填空,使下面的程序段的功能完全与之等同。
s=00;
(11)____________;
k=0;
do
{ s=s+d;
(12)__________;
d=1.0/(k*(k+1));
}
while((13)___________);
printf(“%f\n”,s);
9、以下函数用以求x的y次方。请填空:
double fun(double x,int y)
{int i ; double z;
for(i=1;(14)_________;i++)
z=(15)__________;
return z;
}
10、以下程序段的输出结果是____(16)_______
include<stdio.h>
main( )
{ char *p1, *p2, str[20]=”xyz”;
p1=”abcd”;
p2=”ABCD”;
strcpy(str+1,strcat(p1+1,p2+1));
printf(“%s”,str);
}
11、以下程序段的输出结果是)____________。
 int k,n,m;
n=10; m=1; k=1;
while(k<=n) m*=2;
printf(“%d\n”,m);
}

三、程序填空
1、下面程序求矩阵a的主对角线元素之和,请填空。
main()
{ int a[3][3]={2,4,6,8,10,12,14,16,18};
int sum=0,i,j;
for(i=0;i<3; ① )
for(j=0; ② ;j++)
if(i= =j) sum=sum+ ③ ;
printf("sum=%d\n",sum);
}
展开
 我来答
topzhoubing
推荐于2016-09-18
知道答主
回答量:8
采纳率:0%
帮助的人:11.6万
展开全部
答案如下:
二、
1. 2012
(功能:将字符型数据转换成整形数据);

2. num=311, score=93
(功能:找出最高分及相应的编号);

3. 1 3 5 7 9
(功能:是找出输入数据中的奇数);

4. yes
no
(功能:判断输入的数是否为素数);

5. 1
(vc6.0中运行得到此结果,不同的编译器会有不同);

6. 1024
(功能:求2的n次方);

7. 63
85
(功能:取字符串的的部分字符组成整形数据);

8.(11):d=1.0
(12):k++
(13):k<=n

9. (14):i<=y
(15):z*x

10. xabcdBCD

11.1024
(功能:跟第6题一样);

三、
1. i++
2. j<=i
3. a[i][j]

注:题目中大量代码都有错误,以上答案均是以“代码有意义”为基础进行考虑的。
更多追问追答
追问
太感谢了 还有几个小题目 麻烦在帮忙看一下 多谢了!
2、下列函数coy把字符数组S2中的全部字符复制到字符数组S1中, 复制时’\0’也要复制过去,’\0’后面的字符不用。
coy(char s1[],char s2[])
{ int i;
for(i=0;s2[i]!= ① ;i++)
s1[i]=s2[i];
② ;
}
15、若有定义:int x,*pb;则以下正确的赋值表达式是()
A)pb=&x B)pb=x C)*pb=&x D)*pb=*x
追答
追问的答案:
2、① '\0'
②s1[i]=s2[i]

15、A
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fec0ca6
2012-04-13 · 超过10用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:30.5万
展开全部
8. A
20 A
40 C
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式