1.从键盘输入11个数存入一维数组中,先输出下标为奇数的元素,再输出下标为偶数的元素。
解:
⑴编程思路:
①首先定义变量和数组,数组a用于存放输入的11个数,i为循环变量。
②令变量i的初值为,当i
③输入一个数存入数组元素a[i]中,并令变量i的值加1。
④令变量i的初值为1,当i
⑤输出数组元素a[i]的值,并令变量i的值加2。
⑥令变量i的初值为,当i
⑦输出数组元素a[i]的值,并令变量i的值加2。
⑵源程序:
main()
注意:
①对一批一维数组元素进行输入、输出或其它处理时,通常要用单重循环控制数组元素下标的变化。
2.从键盘输入11个数存入一维数组中,将下标为奇数的元素值取倒数后重新存入该元素中,并输出所有元素。
解:
⑴编程思路:
①首先定义变量和数组,数组a用于存放输入的11个数,i为循环变量。
②令变量i的初值为,当i
③输入一个数存入数组元素a[i]中,并令变量i的值加1。
④令变量i的初值为1,当i
⑤将数组元素a[i]的值取倒数之后重新存入a[i]中,并令变量i的值加2。
⑥令变量i的初值为,当i
⑦输出数组元素a[i]的值,并令变量i的值加1。
⑵源程序:
main()
注意:
①因为部分数组元素的值要取倒数,结果很可能是实数,故数组a应定义为实型。
②因为a[i]为float型,故1/a[i]不必写作1.0/a[i]。
3.从键盘输入11个数存入一维数组中,将左半部分的元素值取倒数后重新存入该元素中,并输出所有元素。
解:
解法1:
⑴编程思路:
①首先定义变量和数组,数组a用于存放输入的11个数,i为循环变量。
②令变量i的初值为,当i
③输入一个数存入数组元素a[i]中,并令变量i的值加1。
④令变量i的初值为,当i
⑤将数组元素a[i]的值取倒数之后重新存入a[i]中,并令变量i的值加1。
⑥令变量i的初值为,当i
⑦输出数组元素a[i]的值,并令变量i的值加1。
⑵源程序:
main()
解法2:
#define N 11
main()
4.从键盘输入11个数存入一维数组中,将右半部分的元素值取相反数后重新存入该数组中,并输出所有元素。
解法1:
main()
解法2:
#define N 11
main()
5.求出斐波那契数列的前20项并输出。
main()
;
inti;
for(i=2;i
f[i]=f[i-2]+f[i-1];
for(i=0;i
printf("%12ld",f[i]);
}
6.从键盘输入10个数,求出其中的最大数并输出。
main()
printf("max=%d\n",max);
}
7.从键盘输入10个数,求出其中的最大数和最小数并输出。
解法1:
main()
min=a[0];
for(i=1;i
printf("max=%d\n",max);
printf("min=%d\n",min);
}
解法2:
main()
printf("max=%d,min=%d\n",max,min);
}
8.从键盘输入11个数存入一维数组a中,再将其中的值按相反的顺序存入数组b中并输出。
解法1:
main()
printf("\n");
}
解法2:
#define N 11
main()
printf("\n");
}
8A.从键盘输入11个数存入一维数组中,将其中的值前后倒置后重新存入该数组中并输出。
解法1:
main()
for(i=0;i
printf("%d,",a[i]);
printf("\n");
}
解法2:
main()
{ int a[11],i,j,t;
for(i=0;i
scanf("%d",&a[i]);
for(i=0,j=10; i
for(i=0;i
printf("%d,",a[i]);
printf("\n");
}
解法3:
#define N 11
main()
for(i=0;i
printf("%d,",a[i]);
printf("\n");
}
9.从键盘输入11个数存入一维数组中,将该数组中左半部分与右半部分的值平移交换后重新存入该数组中并输出。
解法1:
main()
for(i=0;i
printf("%d,",a[i]);
printf("\n");
}
解法2:
#define N 11
main()
for(i=0;i
printf("%d,",a[i]);
printf("\n");
}
9A.从键盘输入任意一个年份与月份,输出这个月的天数。
#include
main( )
;
scanf("%d%d",&y,&m);
if(y%4==0&&y%100!=0||y%400==0)
mon[2]=29;
printf("这个月的天数=%d\n",mon[m]);
}
10A.从键盘输入任意一个年月日,求出从这一年的1月1日到这一天的总天数。
#include
main( )
;
scanf("%d%d%d",&y,&m,&d);
if(y%4==0&&y%100!=0||y%400==0)
mon[2]=29;
days=0;
for(i=1;i
days=days+mon[i]; /*到上月末的总天数*/
days=days+d; /*到这一天的总天数*/
printf("总天数=%d\n",days);
}
10.从键盘输入100个数存入一维数组中,求其和与平均值并输出。
#define N 100
main()
p=s/N;
printf("s=%f,p=%f\n",s,p);
}
11.从键盘输入一批正数存入一维数组中(以-1为结束标记),求其和与平均值并输出。
解法1:
#define N 200
main()
p=s/n;
printf("s=%f,p=%f\n",s,p);
}
解法2:
#define N 200
main()
p=s/n;
printf("s=%f,p=%f\n",s,p);
}
12.从键盘输入10个数,用选择法按降序排序并输出。
解法1:
main()
}
}
for(i=0;i
printf("%d,",a[i]);
printf("\n");
}
解法2:
main()
}
t=a[i];a[i]=a[k];a[k]=t; /*将本轮最大数与a[i]互换*/
}
for(i=0;i
printf("%d,",a[i]);
printf("\n");
}
解法3:改进的选择法
main()
t=a[i];a[i]=a[max];a[max]=t; /*将本轮最大数与a[i]互换*/
}
for(i=0;i
printf("%d,",a[i]);
printf("\n");
}
解法4:改进的选择法
main()
if(max!=i) /*若本轮最大数不是a[i]*/
/*将本轮最大数与a[i]互换*/
}
for(i=0;i
printf("%d,",a[i]);
printf("\n");
}
12A.从键盘输入10个学生的姓名和成绩,用选择法按成绩降序排序并输出(要求姓名和成绩对应关系保持不变)。
main()
for(i=0;i
}
}
for(i=0;i
}
13.从键盘输入一组数据按行优先次序存入数组a[3][4]中,再按列优先次序输出。
main()
printf("\n");
}
}
14.从键盘输入一组数据按行优先次序存入数组a[3][4]中,再按相反的次序输出。
main()
printf("\n");
}
}
15.从键盘输入一组数据存入数组a[3][3]中,再将主对角线及其下方元素值取倒数后重新存入该数组中,并输出所有元素。
main()
/*因a[i][j]为float型,故不必写作1.0/a[i][j]*/
}
for(i=0;i
printf("\n");
}
}
15A.已知一个二维数组a[2][3]={,},将其转置后存入另一个二维数组b[3][2]中。
main()
,},b[3][2],i,j;
for(i=0;i
printf("\n"); /*注意该语句的位置*/
}
}
16A.已知一个3×4的矩阵a[3][4]={,,{-9,10,-5,2}},找出其中最大的元素值并输出。
main()
,,{-10,10,-5,2}};
max=a[0][0];
for(i=0;i
for(j=0;j
if(a[i][j]>max)
printf("max=%d\n",max);
}
16B.已知一个3×4的矩阵a[3][4]={,,{-9,10,-5,2}},找出其中最大的元素值及其行列号并输出。
main()
,,{-10,10,-5,2}};
max=a[0][0];
row=0;
colum=0;
for(i=0;i
for(j=0;j
if(a[i][j]>max)
printf("max=%d,row=%d,colum=%d\n",max,row,colum);
}
16.从键盘输入一组数据存入数组a[3][3]中,求其主对角线元素之和。
main()
17.从键盘输入一组数据存入数组a[3][3]中,求其主对角线下方元素之和。
main()
printf("s=%f\n",s);
}
18.从键盘输入一组数据存入数组a[4][4]中,求其四周元素之和。
main()
}
printf("s=%f\n",s);
}
19.已知两个矩阵a[3][2]=,b[3][2]=,求其和矩阵c[3][2]并输出。
main()
,b[3][2]=,c[3][2];
inti,j;
for(i=0;i
printf("\n");
}
}
20.已知两个矩阵a[3][2]=,b[2][4]=,求其积矩阵c[3][4]并输出。
main()
,b[2][4]=,c[3][2];
inti,j,k;
for(i=0;i
printf("%6d",c[i][j]);
}
printf("\n");
}
}
21.从键盘输入6个学生5门课程的成绩,求每个人的总分与平均分。
main()
a[i]=s[i]/5; /*a[i]是第i个人的平均分*/
printf("%f,%f\n",s[i],a[i]);
}
}
22.从键盘输入6个学生5门课程的成绩,求每门课程的平均分。
main()
for(j=0;j
a[j]=s[j]/6; /*a[j]是第j门课的平均分*/
printf("%f\n",a[j]);
}
}
23.从键盘输入一个字符串存入数组a中,再将数组a的内容前后倒置后存入数组b中并输出。
#include
main()
24.从键盘输入一个字符串存入数组a中,再将a的内容前后倒置后重新存入数组a中并输出。
解法1:
#include
main()
puts(a);
}
解法2:
#include
main()
/*交换对应元素*/
puts(a);
}
25.从键盘输入10个字符串存入二维字符数组中,求出其中最大者并输出。
#include
main()
puts(max);
}
26.从键盘输入一个字符串存入字符数组中,求出该字符串的长度并输出(不能调用strlen函数)。
#include
main()
27.从键盘输入一个字符串存入数组a中,再将数组a的内容复制到数组b中并输出(不能调用strcpy函数)。
解法1:
#include
main()
解法2:
#include
main()
28.从键盘输入两个字符串分别存入字符数组a和b中,再将b中的字符串连接到a中字符串之后并输出(不能调用strcat函数)。
#include
main()
29.从键盘输入两个字符串分别存入字符数组a和b中,比较两个字符串的大小并输出结果(若a>b,则结果大于;若a
#include
main()
r=a[i]-b[i];
printf("r=%d\n",r);
}
30.从键盘输入的一行字符,统计其中单词的个数。假设单词之间以空格分隔。
#include
main()
printf("c=%d\n",c);
}
31.从键盘输入一行字符,统计其中单词的个数。假设单词之间以标点或空格分隔。
#include
#include
main()
/*第i个字符是字母,第i+1个字符不是字母,表示一个单词结束*/
printf("c=%d\n",c);
}
32.从键盘输入一行字符,按下列规则加密之后输出。
A→Z a→z
B→Y b→y
C→X c→x
......
Z→A z→a
#include
main()
puts(a);
}
领取专属 10元无门槛券
私享最新 技术干货