1.概念填空题
(5)
1、定义整数变量k和x;
2、定义一个for循环,k=0,x=0;
3、判断k <= 9 &&x!= 10,是进行下一步,否则第5步;
4、把表达式x+2的值赋给x,进行k++,返回第3步;
5、输出k和x的值,结束。
#include<stdio.h>
int main()
{
int k, x;
for (k = 0, x = 0; k <= 9 && x != 10; k++)
x = x + 2;
printf("%d,%d", k, x);
return 0;
}
(6)
1、定义一个字符变量c;
2、定义一个for循环,从键盘输入一个字符变量赋值给c;
3、判断getchar() != '#',是进行下一步,否则第5步;
4、输出单个字符c,取另一个键盘输入的字符,返回第3步;
5.结束。
#include<stdio.h>
int main()
{
char c;
for (c = getchar(); getchar() != '#'; c = getchar())
putchar(c);
return 0;
}
2.单项选择题
(14)
1、定义一个字符型变量ch;
2|、定义一个for循环;
3、判断从键盘输入的字符是否是“\n”,是进行下一步,否则跳到第5步;
4、输出字符ch,返回第3步;
5.结束。
#include<stdio.h>
int main()
{
char ch;
for (; (ch = getchar()) != '\n';)printf("%c", ch);
return 0;
}
(15)
1、定义两个整数变量i和a,并给a赋值为1;
2、声明一个无符号整型j;
3、定义一个for循环,把15的值赋值给j;
4、判断j是否大于0,大于0下一步,不大于0第6步;
5、a自加1,j减2的值赋值给j,返回第4步;
6、结束。
#include<stdio.h>
int main()
{
int i, a = 1; unsigned j;
for (j = 15; j > 0; j -= 2)a++;
return 0;
}
3.阅读程序题
(1)
1、定义一个整数变量I;
2、定义一个for循环,把1的值赋值给I;
3、判断i是否小于6,是进行下一步,否则到第7步;
4、判断i能否取余2,能进行下一步,否则第5步;
5、输出字符”*”,i自加1,返回第3步;
6、输出字符“#”,i自加1,返回第3步;
7、结束。
#include<stdio.h>
int main()
{
int i;
for (i = 1; i < 6; i++)
{
if (i % 2)
printf("*");
else
printf("#");
}
return 0;
}
(2)
1、定义三个整数变量m,n,i,并把1的值赋值给m;
2、定义一个for循环,把0的值赋值给i;
3、判断i是否小于5,是进行下一步,否则到第8步;
4、把1的值赋值给整数m;
5、m自加1;
6、判断i是否等于4,是进行下一步,否则i自加1返回第3步;
7、把m的值赋值给n,i自加1,返回第3步;
8、输出m和n的值,结束。
#include<stdio.h>
int main()
{
int m = 1, n, i;
for (i = 0; i < 5; i++)
{
int m = 1;
m++;
if (i == 4)n = m;
}
printf("%d,%d", m, n);
return 0;
}
(3)
1、定义一个整数变量i;
2、定义for循环,并把字符‘a’赋值给i;
3、判断i是否小于字符‘f’,是进行下一步,否则到第5步;
4、输出i减字符’a’加字符‘A’的值,i自加1,i自加1,返回第3步;
5、结束。
#include<stdio.h>
int main()
{
int i;
for (i = 'a'; i < 'f'; i++, i++)
printf("%c", i - 'a' + 'A');
return 0;
}
(4)
1、定义四个字符变量f,f1,f2,i;
2、把1的值赋值给f1,把1的值赋值给f2;
3、输出f1和f2的值;
4、定义一个for循环,把3的值赋值给i;
5、判断i是否小于等于5,是进行下一步,否则到第9步;
6、把f1+f2的值赋给f;
7、输出f的值;
8、把f2的值赋给f1,把f的值赋给f2,i自加1,返回第5步;
9、结束。
#include<stdio.h>
int main()
{
int f, f1, f2, i;
f1 = 1; f2 = 1;
printf("%2d%2d", f1, f2);
for (i = 3; i <= 5; i++)
{
f = f1 + f2;
printf("%2d", f);
f1 = f2; f2 = f;
}
return 0;
}
(5)
1、定义一个整数变量n,并把5赋值给n;
2、判断n是否能取余2,能进行第3,4步,否则进行第5步;
3、取余为0时,n自减1,跳到第5步;
4、取余为1时,n自减1,跳到第7步;
5、n自减1;
6、输出n的值;
7、判断n是否能大于0,是返回第2步,否则进行下一步;
8.结束。
#include<stdio.h>
int main()
{
int n = 5;
do
{
switch (n % 2)
{
case 0:n--; break;
case 1:n--; continue;
}
n--;
printf("%2d", n);
} while (n > 0);
return 0;
}
(7)
1、定义一个整数变量x,并把10的值赋给x;
2、判断x自减1是否等于0,是进行下一步,否则继续自减;
3、输出x的值,结束。
#include<stdio.h>
int main()
{
int x = 10;
while (x--);
printf("x=%d\n", x);
return 0;
}
(9)
1、定义一个整数变量m,并把9赋给m;
2、定义for循环;
3、判断m是否大于0,是进行下一步,否则到第6步;
4、判断m取余3是否等于0,是进行下一步,否则m自减1,返回第3步;
5、输出—m的值,m自减1,返回第3步;
6、结束。
#include<stdio.h>
int main()
{
int m = 9;
for (; m > 0; m--)
if (m % 3 == 0)
printf("%d", --m);
return 0;
}
(10)
1、定义一个整数变量x,并把8的值赋给x;
2、定义for循环;
3、判断x是否大于0,是进行下一步,否则到第7步;
4、判断x取余是否等于0,是进行下一步,否则到第6步;
5、输出x--的值,x自减1,返回第3步;
6、输出—x的值,x自减1,返回第3步;
7、结束。
#include<stdio.h>
int main()
{
int x = 8;
for (; x > 0; x--)
{
if (x % 3 == 0)
{
printf("%d,", x--);
continue;
}
printf("%d", --x);
}
return 0;
}
(11)
1、定义一个整数变量x,并把3的值赋给x;
2、输出x减3赋给x的值;
3、判断x是否为非0,是进行下一步,否则返回第2步;
4、结束。
#include<stdio.h>
int main()
{
int x = 3;
do
{
printf("%3d", x = x - 3);
} while (!x);
return 0;
}
(12)
1、定义一个整数变量x,并把2的值赋给x;
2、输出非x减2的值;
3、判断x自减1后是否为0;是进行下一步,否则返回第2步;
4、结束。
#include<stdio.h>
int main()
{
int x = 2;
do
{
printf("%3d", !x - 2);
} while (--x);
return 0;
}
(13)
1、定义两个整数变量n和d,并把12345的值赋给n;
2、判断n是否不等于0,是进行下一步,不是到第6步;
3、把n取余10的值赋给d;
4、输出d的值;
5、把n除以10的值赋给n,返回第2步;
6、结束。
#include<stdio.h>
int main()
{
int n = 12345, d;
while (n != 0)
{
d = n % 10;
printf("%d", d);
n = n / 10;
}
return 0;
}
(14)
1、定义两个整数变量m,sum,并把0赋值给m和sum;
2、声明两个字符变量c和oldc,并把字符‘+’的值赋给oldc;
3、从键盘输入一个字符变量给c;
4、判断c是否小于等于字符‘9’并且大于等于字符‘0’,是进行下一步,否则到第6步;
5、把10乘以m加c减字符‘0’的值赋给m;
6、判断oldc是否等于字符‘+’,是进行下一步,否则到第8步;
7、把sum加m的值赋给sum;
8、把sum减m的值赋给sum;
9、把0的值赋给m;
10、把c的值赋给oldc;
11、输出sum的值;
12、判断c是否不等于字符‘=’,是进行下一步,否则返回第3步;
13、结束。
#include<stdio.h>
int main()
{
int m = 0, sum = 0;
char c, oldc = '+';
do
{
c = getchar();
if (c <= '9' && c >= '0')m = 10 * m + c - '0';
else
{
if (oldc == '+')sum += m;
else sum -= m;
m = 0;
oldc = c;
printf("%3d", sum);
}
} while (c != '=');
return 0;
}
(16)
1、定义两个整数变量t和n,并把1的值赋给t,把235的值赋给n;
2、把n取余10乘以t的值赋给t;
3、把n除以10的值赋给n;
4、判断n是否为0,是进行下一步,否则返回第2步;
5、输出t的值,结束。
#include<stdio.h>
int main()
{
int t = 1, n = 235;
do
{
t *= n % 10;
n /= 10;
} while (n);
printf("%d\n", t);
return 0;
}
(17)
1、定义两个整数变量m和n,把5的值赋给m,把0的值赋给n;
2、判断m是否大于0,是进行下一步,否则到第10步;
3、判断m的值为几;
4、m的值为1,为空语句,
5、继续执行m的值为3,n加1赋给n,m自减1,到第9步;
6、m的值为其他值,把0的值赋给n,m自减1;
7、继续执行m为2,为空语句;
8、继续执行m为4,n加2的值赋给n,m自减1,到第9步;
9、输出n的值,返回第2步;
10、结束。
#include<stdio.h>
int main()
{
int m = 5, n = 0;
while (m > 0)
{
switch (m)
{
case 1:
case 3:n += 1; m--; break;
default:n = 0; m--;
case 2:
case 4:n += 2; m--; break;
}
printf("%2d", n);
}
return 0;
}
(18)
1、定义两个整数变量i,m,并把0赋值给m;
2、定义for循环,把0的值赋给i;
3、判断i是否小于5,是进行下一步,否则到第9步;
4、判断i的值为几;
5、i的值为0时,空语句;
6、i的值为1时,m自加1;
7、i的值为3时,m自加1;
8、i的值为4时,m自减1,返回第3步,并且i自加1;
9、输出m的值,结束。
#include<stdio.h>
int main()
{
int i, m = 0;
for (i= 0; i < 5; i++)
{
switch (i)
{
case 0:
case 1:m++;
case 3:m++;
case 4:m--; break;
}
}
printf("%d\n", m);
return 0;
}
(19)
1、定义三个整数变量i,b,c,并把0赋值给b,把2赋值给c;
2、定义for循环,把0赋值给i;
3、判断i是否小于2,是进行下一步,否则到第9步;
4、判断++b和b乘以c之后的值为几;
5、b的值为1时,输出数字1;
6、b的值为2时,输出数字2;
7、b的值为3时,输出数字3,返回第3步,并且i自加1;
8、b的值为其他值时,输出“other\n”,返回第3步,并且i自加1;
9、结束。
#include<stdio.h>
int main()
{
int i, b = 0, c = 2;
for (i= 0; i < 2; i++)
{
switch (++b,b*c)
{
case 1:printf("1");
case 2:printf("2");
case 3:printf("3"); break;
default:printf("other\n");
}
}
return 0;
}
4.完善程序题
(1)
1、定义四个整数变量n,i,denominator,flag;
2、声明两个单精度浮点型变量sum和item;
3、输出"Please input n:";
4、输入n的值;
5、把1的值赋值给flag;
6、把1的值赋值给denominator;
7、把0的值赋值给sum;
8、定义for循环,把1的值赋值给i;
9、判断i是否小于等于n,是进行下一步,否则到第14步;
10、把flag乘以1.0除以denominator的值赋值给item;
11、把sum加item的值赋值给sum;
12、对flag进行正负号转换;
13、把denominator加2的值赋值给denominator,返回第9步,并i自加1;
14、输出sum的值,结束。
#include<stdio.h>
int main()
{
int n, i, denominator, flag;
float sum, item;
printf("Please input n:");
scanf_s("%d", &n);
flag = 1;
denominator = 1;
sum = 0;
for (i = 1; i <= n; i++)
{
item = flag * 1.0 / denominator;
sum = sum + item;
flag = -flag;
denominator = denominator + 2;
}
printf("sum=%f\n", sum);
return 0;
}
(2)
1、定义两个整数变量i和n;
2、声明两个单精度浮点型变量sum和flag,并分别赋值0和1.0;
3、输入n的值;
4、定义for循环,把1的值赋值给i;
5、判断i是否小于等于n,是进行下一步,否则到第8步;
6、把表达式的值赋值给sum;
7、对flag进行正负转换,返回第5步,并且i自加1;
8、输出sum的值,结束。
#include<stdio.h>
int main()
{
int i, n;
float sum = 0, flag = 1.0;
scanf_s("%d", &n);
for (i = 1; i <= n; i++)
{
sum = sum + flag * i / (2 * i - 1);
flag = -flag;
}
printf("Sum=%f", sum);
return 0;
}
(3)
1、定义两个整数变量n和s;
2、输出"Enter a number:";
3、输入n的值;
4、输出"Output:";
5、把n取余10的数赋值给s;
6、输出s的值;
7、把n除以10的值赋值给n;
8、判断n是否不等于0,是进行下一步,否则返回第5步;
9、结束。
#include<stdio.h>
int main()
{
int n, s;
printf("Enter a number:");
scanf_s("%d", &n);
printf("Output:");
do
{
s = n % 10;
printf("%d", s);
n /= 10;
} while (n != 0);
return 0;
}
(4)
1、定义一个单精度浮点型变量s,并把1.0赋值给s;
2、声明两个整数变量k和n,并分别赋值为1和5;
3、判断k是否小于等于n,是进行下一步,否则到第6步;
4、把表达式的值赋值给s;
5、k自加1,返回第3步;
6、输出s的值,结束。
#include<stdio.h>
int main()
{
float s = 1.0;
int k = 1, n = 5;
while (k <= n)
{
s = s + 1.0 / (k * (k + 1));
k++;
}
printf("s=%f\n\n", s);
return 0;
}
(10)
1、定义一个整数变量为i;
2、定义for循环,把100的值赋值给I;
3、判断i是否小于200,是进行下一步,否则到第8步;
4、判断i减2之和取余4是否为0,是进行下一步,否则i自加1,返回第三步;
5、判断是否不等于i减3取余7,是进行下一步,否则i自加1,返回第三步;
6、判断i减5取余9是否为0,是进行下一步,否则i自加1,返回第三步;
7、输出i的值,i自加1,返回第三步;
8、结束。
#include<stdio.h>
int main()
{
int i;
for (i = 100; i < 200; i++)
if ((i - 2) % 4 == 0)
if (!((i - 3) % 7))
if ((i - 5) % 9 == 0)
printf("%d", i);
return 0;
}
(11)
1、定义三个整数变量count,i,n;
2、声明两个双精度浮点型变量grade和total;
3、输出"Enter n:";
4、输入n的值;
5、把0赋值给total;
6、把0赋值给count;
7、定义for循环,把1的值赋值给i;
8、判断i是否小于等于n,是进行下一步,否则到第14步;
9、输出"Enter grade #i:";
10、输入grade的值;
11、把total加grade的值赋值给total;
12、判断grade是否小于60,是进行下一步,否则返回第8步,并i自加1;
13、count自加1,返回第8步,并i自加1;
14、输出"Grade average=%.2f\n",total的值;
15、输出"Number of failures=%d\n",count的值;
16、结束。
#include<stdio.h>
int main()
{
int count, i, n;
double grade, total;
printf("Enter n:");
scanf_s("%d", &n);
total = 0;
count = 0;
for (i = 1; i <= n; i++)
{
printf("Enter grade #%d:", i);
scanf_s("%lf", &grade);
total = total + grade;
if (grade < 60)
count++;
}
printf("Grade average=%.2f\n", total / n);
printf("Number of failures=%d\n", count);
return 0;
}
(12)
1、定义两个整数变量i和j;
2、定义for循环,把0的值赋值给i;
3、判断i的值是否小于10,是进行下一步,否则到第7步;
4、把i乘以10加6的值赋给j;
5、判断j取余3的值是否等于0,是进行下一步,否则返回第3步,并i自加1;
6、输出j的值,返回第3步,并i自加1;
7、结束。
#include<stdio.h>
int main()
{
int i, j;
for (i = 0; i < 10; i++)
{
j = i * 10 + 6;
if (j % 3 == 0)
printf("%3d", j);
}
return 0;
}