若变量已正确定义,执行以下while语句将陷入死循环。
i = 1;
while (i <= 10) ;
i++;
T 原因是 阴间考法:while后面的分号。只要i!=0一直循环
2.
以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算每位学生的平均分并输出,但运行后结果不正确,调试中发现有一条语句出现的位置不正确。这条语句是: (A)
int main(void)
{
int n,k;
float score, sum, ave;
sum=0.0;
for(n=1; n<=10; n++)
{
for(k=1; k<=4; k++)
{
scanf("%f",&score);
sum+=score;
}
ave=sum/4.0;
printf("NO%d:%f\n",n,ave);
}
return 0;
}
A.sum=0.0;
B.sum+=score;
C.ave=sun/4.0;
D.printf("NO%d:%f\n",n,ave);
选择A的原因是 在内层循环将sum赋值后,sum的值需要重新定义为0;因此A式子放在外层循环内
3.
等比数列的第一项a= 1, 公比 q=2, 下面程序段计算前n项和小于100的最大n。程序划线处应填(C)。
int main(void)
{ int a, q, n, sum;
a=1; q=2;
for(n =sum = 0; sum<100; n++)
{ sum += a;
a*= q; }
——————;
printf("n =%d\n", n);
return 0; }
A.空行
B.n- = 2;
C.n--;
D.n++;
选C
4.
要求以下程序的功能是计算:s=1+1/2+1/3+······+1/10, 但运行后输出结果错误, 导致
错误结果的程序行是(C)。
int main(void)
{ int n; float s;
s = 1.0;
for(n =10;n>1; n--) s=s+1/n;
printf("%6.4f\n ",s);
return 0; }
A.int n; float s;
B.for(n= 10; n>1;n--)
C.s=s+1/n;
D.s=1.0;
选择C 原因是1/n因为两个数字都是整型,所以得出来的数小于1时最终结果都是0,应该将1改为1.0就可以了
5. 7-3 统计字符串中去除某个字符的其他字符的数量并输出去除后的结果字符串。
输入格式:
一个字符串
一个字符
输出格式:
一个字符串
一个数值
输入样例:
abc87dd
c
输出样例:
ab87dd
6
不会就问,做题思路可以这样:
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
void deleteChar(char c, char str[]) {
int strLength = strlen(str);// 计算字符串的长度
int point = 0; // 字符串位置标号,用于保存当前有效字符位置
for(int i =0;i<strLength;i++){
if(str[i]==c){ //这里的字符c不用加引号
continue;// 若当前字符为要删除的字符,则直接跳过继续进行循环
}else{
str[point]=str[i];// 当前字符为非删除字符,则往前覆盖
point++; // 有效字符标号位置递增
}
}
str[point]='\0'; // 循环结束,最后一个字符为结束符
puts(str);
printf("%d",point);
}
int main(void)
{
char c,str[1000]; //定义位置数量的数组,在中括号里填写一个大数值
int point;
gets(str); //在C语言中,scanf和gets这两个函数进行输入。gets的输入分割符只有回车, gets是能够读入空格的,但是scanf不能。
scanf("%c",&c);
deleteChar(c,str); //这里的字符c也不用加引号
return 0;
}
6.7-7 求经过的闰年数
请编写函数,求从公元 y1 年开始到公元 y2 年之间经过的闰年总数 n。
按照现行历法(格里高利历):四年一闰,百年不闰,四百年再闰。即:年数是 4 的倍数且不是 100 的倍数,或者年数是 400 的倍数,则为闰年,否则为平年。
输入格式
y1 y2
注:0<y1≤y2
输出格式
n
注:n≥0
输入样例
2021 2025
输出样例
1
#include<stdio.h>
main(){
int m,n;
int y=0;
scanf("%d%d",&m,&n);
y=n/4-n/100+n/400-m/4+m/100-m/400;
if((m%100!=0&&m%4==0)||m%400==0){
y++;
}
printf("%d",y);
return 0;
}
自己写的运行总是超时,所以就问了学姐, 学姐说可以用一个式子y就是n到公元一年的闰年数减去m到公元一年的闰年数,只用判断m是否是闰年就可以了。