1,C)scanf("%o,%x,%o",&a,&b);
格式控制参数和参数的个数要一致,否则会发生错误
2,C)122
这是一个函数调用的问题,在主函数中定义了两个变量a=5,b=6,两个指针x,y;并且分别指向了a,b;fun(int a,int b)中指针做形参,当函数调用时,把主函数中变量a的地址传给了fun()中的指针a,第二个参数一样,这样在fun()中a就等于5, b就等于6,最后就可求得m的值。
3,A)1 K属于全局变量,但是在fun(int k)中形参名也为K(局部变量,C中有个规则:当全局变量和局部变量重名时,全局变量被屏蔽掉,不再起作用
4,A)f
注意 while(str++!=′e′);有个分号,表示循环体为空!
对于str,先使用,后加1,所以应该指向e的下一个字符。
5B)10100
注意在函数fun(int x)
{if(x/2>0)fun(x/2);
printf("%d",x%2);}
中,是if语句的简单形式,和后面的printf("%d",x%2)形成并列关系,因此每次递归调用fun(int x)时都要被执行共5次,第一次是1%2,第二次是2%2,依次:5%2,10%2,20%2
6,9
此题就是求",++a--b/5%13的值,考查了优先级和结合性,
大思路是从左向右算!相当于",(++a)(--b)/5%13
思路:先依次统计a到z字母出现的次数。然后申请一个二维数组,第一维以出现字母次数最多的数申请,第二维为26,然后按照规律以或者空格填充这个数组。最后输出整个数组,最后输出a到z字母。
#include <stdioh>
#include <stringh>
int main() {
int num[5],score[5];
char name[5][20],tmp[20];
int i,j,k,t;
for(i = 0;i < 5;i++) {
printf("第%d/5个学生的学号 : ",i + 1);
scanf("%d",&num[i]);
printf("第%d/5个学生的姓名 : ",i + 1);
scanf("%s",name[i]);
printf("第%d/5个学生的成绩 : ",i + 1);
scanf("%d",&score[i]);
}
for(i = 0;i < 4;i++) {
k = i;
for(j = i + 1;j < 5;j++) {
if(score[k] < score[j]) k = j;
}
if(k != i) {
t = num[i];
num[i] = num[k];
num[k] = t;
strcpy(tmp,name[i]);
strcpy(name[i],name[k]);
strcpy(name[k],tmp);
t = score[i];
score[i] = score[k];
score[k] = t;
}
}
printf("排序后:\n");
for(i = 0;i < 5;i++) printf("%d %s %d\n",num[i],name[i],score[i]);
printf("\n");
return 0;
}
以上就是关于C语言问题 能详细的说明下过程全部的内容,包括:C语言问题 能详细的说明下过程、C语言问题,求大神帮助解决,最好基于我自己写的程序、c语言程序问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)