digit ++; }
else if (str[i]=' ' ) { space ++; } else
other ++; }
printf(\英文字符数:%d\\n\ printf(\数字字符数:%d\\n\ printf(\空格数:%d\\n\
printf(\其他字符数:%d\\n\}
答案:
#include #include
#define ARR_SIZE 80
main() {
charstr[ARR_SIZE]; int len, i;
int letter = 0, digit = 0, space = 0, other = 0;
printf(\请输入一个字符串:\ gets(str);
len = strlen(str);
for(i = 0; i <= len; i++) {
if('a'<= str[i] && str[i] <= 'z'|| 'A'<= str[i] && str[i]<= 'Z')
}
}
{
letter++; }
elseif('0'<= str[i]&&str[i] <= '9') {
digit++; }
elseif(str[i] == ' ') {
space++; } else
other++;
printf(\英文字符数:%d\\n\ printf(\数字字符数:%d\\n\ printf(\空格数:%d\\n\
printf(\其他字符数:%d\\n\
--------------------39 40.
编程判断输入的一个字符串是否是“回文”。所谓“回文”字符串就是左读和右读都一样的字符串。例如: \就是一个回文字符串。
输入提示信息:\输入格式:gets()
判断是回文的输出提示信息:\
判断不是回文的输出提示信息:\
程序运行示例1: Input a string: abcba↙
This string is a plalindrome.
程序运行示例2: Input a string: friend↙
This string is not a plalindrome.
答案:
#include charstr_1[81];
voidInverse(charstr[]); intmain()
{
printf(\ gets(str_1); Inverse(str_1); }
voidInverse(charstr[]) {
charb; inta, c;
for(a = 0;a < 81;a++) {
if(str[a] == '\\0') break; else
continue; }
for(c = 0;c < (a) / 2.0; c++) {
if(str[c] == str[(a - 1) - c]) continue; else {
printf(\plalindrome.\
return; } }
printf(\ }
------------------------------40 41.
编程实现从键盘输入5个国名(每个国名最长80个字符), 找出并输出按字典顺序排在最前面的国名 要求:
(1)用gets输入字符串。 (2)
**输入提示信息为:\**输出格式为:\
答案:
#include main() {
inti;
}
chara[5][81] = {0}, b, c;
printf(\ for(i = 0; i < 5;i++) {
gets(a[i]); }
b = a[0][0];
for(i = 1; i < 5; i++) {
if(a[i][0] < b) {
b = a[i][0]; c = i; }
elseif(a[i][0] == b) {
if(a[i][1] < a[i - 1][1]) c = i; else
c = i - 1; } else
continue; }
printf(\
---------------41 42.
一个n位正整数如果等于它的n个数字的n次方和,该数称为n位自方幂数。设计求3~6位自方幂数。 **输出格式要求:\位自幂数有:\每位完后换行)
程序运行示例如下:
3位自幂数有:153 370 371 407 4位自幂数有:1634 8208 9474 5位自幂数有:54748 92727 6位自幂数有:548834 尚未完成
---------------------42 43.
93084
从键盘为3*3的矩阵输入数据,找出主对角线上最大的元素,以及所在的行号。 **输入提示信息:无 **输入格式要求:\
**输出格式要求:\程序运行示例如下:
1 2 3 4 5 6 7 8 9
max=9 ,row=2
注:不允许使用goto语句
答案:
#include
main()
{ inti, j, row = 0, max; inta[3][3];
for(i = 0; i < 3; i++)
{ for(j = 0; j < 3; j++)
{
scanf(\ } }
max = a[0][0];
for(i = 0; i < 3; i++)
{ if(max < a[i][i])
{
max = a[i][i]; row = i; } }
printf(\ }
--------------------43 44.
任意输入英文的星期几,通过查找星期表,输出其对应的数字, 若查到表尾,仍未找到,则输出错误提示信息。
**输入格式要求:\提示信息:\**输出格式要求:\查找表中信息:
\\
程序运行示例1如下: Please enter a string:
Monday
Monday is 1
程序运行示例2如下: Monkey
Not found!
答案:
#include #include #define WEEKDAYS 7
#define MAX_STR_LEN 10 intmain()
{ inti, pos;
intfindFlag = 0; charx[MAX_STR_LEN];
charweekDay[][MAX_STR_LEN] = {\\
printf(\ scanf(\
for(i = 0; i < WEEKDAYS && !findFlag; i++)
{ if(strcmp(x, weekDay[i]) == 0)
{ pos = i;
findFlag = 1; } }
if(findFlag)
{ printf(\ } else
{ printf(\ }
return0; }
-----------------------44 45.
有一个3*4的矩阵,求其中的最大元素的值。矩阵为: {{1,3,5,7},{2,4,6,8},{15,17,34,12}};
**输出格式要求:\程序运行示例如下: max value is 34
答案:
#include main() {
inta[3][4] = {{1,3,5,7},{2,4,6,8},{15,17,34,12}}; inti, j, c; c = a[0][0];
for(i = 0; i < 3; i++) {
for(j = 0; j < 4; j++) {
if(a[i][j] >= c) c = a[i][j]; else
continue; } }
printf(\ }
-------------------45 46.
按如下函数原型编写程序,输入n×n阶矩阵,用函数编程计算并输出其两条对角线上的各元素之和。
void InputMatrix(int a[N][N], int n); int AddDiagonal(int a[N][N], int n); 输入提示信息: \
\输入格式:\
输出提示信息和输出格式:\
答案:
#include #define PL 50 main() {
inta[PL][PL];
inti, j, n, sum = 0; printf(\ scanf(\
printf(\ for(i = 0; i < n; i++)
}
for(j = 0; j < n; j++) {
scanf(\ }
for(i = 0; i < n; i++)
for(j = 0; j < n; j++) {
if(i == j || (i + j) == (n - 1)) sum = sum + a[i][j]; }
printf(\
------------------46 47.
有如下3*4的矩阵,求出其中值最大的元素的值。 1 2 3 4 9 8 7 6 10 -1 -4 4
在对数组进行初始化时,给出上面数据。
**要求输入提示信息为:无输入提示信息和输入数据 **要求输出格式为:\
答案:
#include main() {
inta[3][4] = { { 1,2,3,4 },{ 9,8,7,6 },{ 10,-1,-4,4 } }; inti, j, c; c = a[0][0];
for(i = 0; i < 3; i++) {
for(j = 0; j < 4; j++) {
if(a[i][j] >= c)
c = a[i][j]; else
continue; } }
printf(\ }
--------------------47 48.
输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计不及格成绩的个数。
**输入格式要求:\提示信息:\grade #%d: \提示信息:\n: \
**输出格式要求:\程序运行示例如下: Enter n: 4
Enter grade #1: 67 Enter grade #2: 54 Enter grade #3: 88 Enter grade #4: 73 Grade average = 70.50 Number of failures = 1
答案:
#include doublea[40] = { 0 }; inti = 0;
intGetAboveAver(doublescore[], intn); intmain() {
intn;
printf(\ scanf(\ for(i; i < n; i++) {
printf(\ doubleb = 0; scanf(\ if(b >= 0)
a[i] = b; else
break; }
GetAboveAver(a, n); }
intGetAboveAver(doublescore[], intn) {
int c;
doublesum = 0, d; int e = 0;
for(c = 0;c < i; c++) {
sum = sum + score[c]; }
d = sum / i;
}
printf(\ for(c = 0;c < i; c++) {
if(score[c] < 60) e++; else
continue; }
printf(\ return0;
---------------------48 49.
直角三角形的三边满足a^2+b^2=c^2,如果三边都是整数,则称a、b、c为一组勾股数。
编程输出每边长都不大于20的所有勾股数。 **输入提示信息格式: 无 **输入数据格式要求: 无
**输出数据格式要求: \
答案:
#include #include main() {
inta, b, c;
for(a = 1; a <= 20; a++)
for(b = 1;b <= 20; b++)
for(c = 1;c <= 20; c++) {
if(c >= b && b >=a)
if(pow(c,2) == pow(b,2)+pow(a,2)) printf(\n\
} }
---------------------49 50.
求菲波那奇数列:数列1、1、2、3、5、8、13、21、?,是著名的菲波那奇数列,其递推通项公式为:U_1=U_2=1, (n=1,2)U_n=U_{n-1}+U_{n-2},(n>=3) 求出第n项的值,请编写程序。
**输入格式要求:\提示信息:\**输出格式要求:\程序运行示例如下: Input n=?10
No. 10 is 55
答案:
#include intFct(intn); main() {
intn;
printf(\ scanf(\
printf(\ }
intFct(intn) {
if(n <= 2) return1; else
returnFct(n-1)+Fct(n - 2); }
-----------------------50 51.
下面程序的功能是读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。找出其中的错误,并改正之。 #include \ main()
{ inti,a,n=1; while(n<=7) {
do
{
scanf(\ }while(a<1 && a>50); for(i=1;i<=a;i++) printf(\ printf(\ n++; } }
答案:
#include \ intmain() {
inti, a, n = 1; while(n <= 7) {
}
scanf(\
if(a >= 1 && a <= 50);
for(i = 1;i <= a;i++) printf(\
printf(\ n++; }
-----------------51 52.
编写程序:有1,2,3,4共四个数字,能组成多少个互不相同的且无重复数字的三位数,都是多少。
**输出格式要求:\共有%d种组合!\程序运行示例如下: 1 2 3 1 2 4 1 3 2 1 3 4 1 4 2 1 4 3 2 1 3 2 1 4 2 3 1 2 3 4 2 4 1 2 4 3 3 1 2 3 1 4 3 2 1 3 2 4 3 4 1 3 4 2 4 1 2 4 1 3 4 2 1 4 2 3 4 3 1 4 3 2
共有24种组合!
答案:
#include main() {
int a, b, c, d = 0; for (a = 1;a <= 4;a++) for (b = 1; b <= 4; b++ ) for (c = 1;c <= 4; c++) {
if(a != b && a != c && b != c) {
printf(\ d++; } }
printf(\共有%d种组合!\}
---------------------------------52 53.
用while语句编程,输入一组整型数据,然后显示每次将输入数据进行累加运算后的结果。当输入0时,停止输入数据,结束程序的运行。 **输入格式要求:\提示信息:\**输出格式要求:\程序运行示例如下: Input num:1 sum = 1 Input num:2 sum = 3 Input num:3 sum = 6 Input num:4 sum = 10 Input num:0 sum = 10
答案:
#include main() {
int sum = 0,num; do {
printf(\ scanf(\ sum = sum + num;
printf(\ }while(num); }
--------------------------------------53 54.
利用pi/2 = (2/1)*(2/3)*(4/3)*(4/5)*(6/5)*(6/7)*...前100项之积,编程计算pi的值。
为保证计算精度,请用double类型计算。 **输出格式要求:\
答案:
#include main() {
doubled = 1, pi; inti, j;
for(i = 1; i <= 50; i++) for(j = 1; j <= 2; j++) {
if(j == 1)
d = d * (double)(i*2)/(i*2 - 1); else
d = d * (double)(i*2)/(i*2 + 1); } pi = 2*d;
printf(\ }
------------------------54 55.
利用π4=1?13+15?17+…,编程计算π的近似值,直到最后一项的绝对值小于10?4时为止,输出π的值并统计累加的项数。 **输出格式要求:\采用double定义累加和变量
答案:
#include intmain() {
doubled = 0, pi; inti, j = 0, k = 1;
for(i = 1;1 / (double)i >= 0.0001 || 1 /(double) i < -0.0001; i = i + 2) {
if(k % 2 == 0) {
d = d - 1 / (double)i; j++;
}
k++; } else {
d = d + 1 / (double)i; j++; k++; } }
d = d + 1/(double)i; j++;
pi = 4 * d;
printf(\
---------------------------------55 56.
从键盘输入10个整数,编程计算并输出其最大值、最小值及其所在元素的下标位置。
输入格式:\
输出格式:\\输入样例:
1 2 3 4 5 6 7 8 9 10 输出样例: max=10, pos=9 min=1, pos=0
答案:
#include main() {
inta[10] = {0}, j, i = 0, k = 0; intc, b;
for(j = 0; j < 10; j++) {
scanf(\ if(a[j] > i) {
i = a[j]; c = j; } if(j == 0) {
k = a[j]; b = j;