请教几道读程

来源:百度知道 编辑:UC知道 时间:2024/06/09 03:27:24
1. #include <stdio.h>
int num(char *ss,char c)
{
int i=0;
while(*ss!=0)
if(*ss++==c) i++;
return i;
}
main()
{
char a[100],ch;
gets(a);
ch=getchar();
printf("%d" ,num(a,ch));
}
输入:"123412132"
c='1'
输出

2. #include<conio.h>
#include<stdio.h>
void countValue(int *a,int *n)
{
int i;
*n=0;
for(i=1;i<1000;i++)
if((i%7==0&&i%11==0)
a[(*n)++]=i;
)
main()
{
int aa[1000],n,k;
countValue(aa,&n);
for(k=0;k<n;k++)
if((k+1)%10==0) printf("\n");
else printf("%d ",aa[k]);
}

3. 以下程序中, for循环体执行的次数是 【13】 。
#define N 2
#define M N+1
#define K M+1*M/2
main()
{ int i;
for(i=1;i<K;i++)
{ ... }
...
}

4.以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。<

第一个输出 3 程序是用来统计在数组a中有多少个与ch相同的数字,因而直接看都看出来是3了.

第二个输出 77 154 231 308 385 462 539 616 693 847 924这几个在1000以内,并且是77的整数倍的数字.但是你程序中有一个错误,就是在main函数之前那个括号“)”应该是书写错误吧。

第三个 没有看懂你的意思,不过你说for循环要执行13次那是错误的,因为,N=2,M=3,K=5(计算K的时候注意运算规则),那么在for循环里面只能做 i= 1,2,3,4这几中情况了,就是说只有4次。

第四个 【1】处为a[k][i],【2】处为x;

第五个 【1】处为a[i],【2】处为a[i]>0【3】处为a[i]

第六个 程序实现的功能是使得字符串从大到小排列,虽然你的程序没写完,但可以猜得出来,结果应该是 7654321

第七个 最后一个程序没意义,输出的结果在不同的机器上面是不一样的,因为输出的是计算机内存中存储数组变量的地址。

1.
3

3.
5

4.
a[k][i]
&s

5.
&a[i]
a[i]>0
a[i]

1. #include <stdio.h>
int num(char *ss,char c)
{
int i=0;
while(*ss!=0)
if(*ss++==c) i++; //求ss中c的个数
return i;
}
main()
{
char a[100],ch;
gets(a);
ch=getchar();
printf("%d" ,num(a,ch));
}
输入:"123412132"
c='1'
输出 3