c语言问题 试题

来源:百度知道 编辑:UC知道 时间:2024/05/16 16:25:59
改错:
不用strcat 函数,将键盘输入的两个字符串连接起来形成一个新串(将第二个串连接到第一串的后面)。
#include<stdio.h>
main()
{
char s1[60],s2[30];
int i=0,j=0;
printf("Enter two string :\n");
scanf("%s%s",&s1,&s2); //这里有错//
for(i=0;s1!='\0';i++); //这里有错//
while(s2[j]='\0') //这里有错//
{ s1[i]=s2[j];
i++;
j++;
}
s1[i]='\0';
printf("\n New string:%s\n",s1);
}

程序填空:
以下程序对学生的记录数据统计不及格的人数并输出不及格学生的信息,请填空。(num域代表学号,
name代表姓名,score代表成绩)
struct stu
{ int num;
char name[12];
float score;
};
main()
{_____stud[5]={{101,"Li ping",45}, //这里填空///
{102,"zhang ping",62.5},
{103,"he fang",92.5},
{104,"cheng ling",87},
{105,"wang ming",58}};

scanf("%s%s",&s1,&s2); //这里有错//
s1,s2本身就是地址,用scanf("%s%s",s1,s2)
for(i=0;s1!='\0';i++); //这里有错// 应该是s1[i]
while(s2[j]='\0') //这里有错//应该是!=
第二题
struct stu
stud[i].score
我感觉这一点有问题
while(i<5)
{
if(_____<60) ///这里填空///
{printf("%d\t%s\t%.2f\n",stud[i].num,stud[i].name,stud[i].score);
________; ///这里填空///
}
i++;
}
printf("n=%d\n",n);
}
应该是
while(i<5)
{
if(stud[i].score<60) ///这里填空///
{printf("%d\t%s\t%.2f\n",stud[i].num,stud[i].name,stud[i].score);
i++;///这里填空///
n++;
}
printf("n=%d\n",n);
}
不然你怎么控制循环