for(i=0;i<10;i++)
scanf(\for( ___________) {
for(j=0;j<____;j++) if (___________)
{___________}
}
for(i=0;i<10;i++)
printf(\
}
[自测数据] [键盘输入] 70 5 14 20 [正确输出]
2 5 13 14 19 20 66 67 70 99 参考程序: #include
int a[10]; int i,j,t;
for(i=0;i<10;i++)
scanf(\for(i=0;i<9;i++) {
for(j=0;j<9-i;j++) if(a[j]>a[j+1]) { }
for(i=0;i<10;i++)
printf(\
}
t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
19 2
99 67 13 66↙
*[题目 1046:计算高精度加法]
由键盘输入两个位数很长的整数(一行一个数,每个数最长不超过 80 位),试计算并输出这两个数 的和。 [自测数据] [键盘输入]
1234567890123456789↙ 987654321098765↙ [正确输出]
1235555544444555554
19
参考程序: #include \#include \main() {
int a[100]={0},b[100]={0},c[100]={0}; char s[101];
int i=0,n1=0,n2=0,max=0,e=0; gets(s); n1=strlen(s);
for(i=n1-1;i>=0;i--) a[n1-1-i]=s[i]-'0'; gets(s); n2=strlen(s);
for(i=n2-1;i>=0;i--) b[n2-1-i]=s[i]-'0'; if(n1>n2) max=n1; else max=n2; for(i=0;i<=max;i++) { }
if(c[max]>0) printf(\for(i=max-1;i>=0;i--) printf(\}
c[i]=(a[i]+b[i]+e); e=(a[i]+b[i]+e)/10;
*[题目:找矩阵中的鞍点]
由键盘输入一个 3×4(3 行 4 列)的矩阵,输出矩阵中的鞍点(即在矩阵行中最大,列中最小的数)。 若没有鞍点,输出“NO”字样。 [自测数据] [键盘输入]
87 90 110 98↙ 70 97 210 65↙ 98 45 120 30↙ [正确输出] 110
20
参考程序: #include
int i,j,k,a[3][4],max,maxj,flag; for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf(\
for(i=0;i<3;i++) {
max=a[i][0]; maxj=0; for(j=0;j<4;j++)
if(a[i][j]>max) {max=a[i][j]; maxj=j; } flag=1;
for(k=0;k<3;k++) if(max>a[k][maxj]) { flag=0; break; } if(flag)
{printf(\} if(!flag)
printf(\
}
21
实验 8 字符数组的应用 一、实验目的
(1)掌握字符数组和字符串函数的使用。 (2)掌握与字符串处理有关的算法。
二、实验内容
[题目 1121:定义存贮字符串的字符数组]
在下面程序中填充定义字符数组的语句,使程序完整。
#include \void main() {
char s[80]; /*定义字符数组 s*/ strcpy(s, \printf(\
}
参考程序:
[题目 1123:字符串的输入与输出]
下面程序实现从键盘读入字符串,然后输出到屏幕,请填充必要的语句。
#include \void main() {
char s[50];
gets(s);
printf(\
/*由键盘读入字符串*/
printf(\
打印字符串*/ printf(\%s\
}
参考程序:
[题目 1122:字符串的合并]
从键盘输入 3 个字符串(每个字符串以回车符做为结束标志),将 3 个字符串以输入先后顺序合并到 字符串 s 中,请填空使用程序完整。
#include \#include \main() {
char s[100]=\char a[30]; gets(a); strcat(s, a);
22
gets(a); strcat(s, a); gets(a); strcat(s, a);
/*可以写多行代码*/
printf(\} [自测数据] [键盘输入]
[正确输出]
123 abc 456
参考程序:
123abc456
[题目 1050:寻找字符串]
由键盘输入两个字符串(假设第一个字符串必包含第二个字符串,如第一个字符串为 ABCDEF,第
二个为 CDE,则 CDE 包含在 ABCDEF 中),现要求编程输出第二字符串在第一行字符串中出现的位置。
(如果第二个字符串在第一个字符串中出现多次,则以最前出现的为准)
[第一组自测数据] [键盘输入] ABCDEFG↙ DE↙ [正确输出] 4
[第二组自测数据] [键盘输入]
hellhello! ↙
↙ hello
[正确输出] 5
[提示]方法 1:建立双重循环,外层循环变量指示第一个串的查找起始位置,内层循环从起始位置开始判 断第二个字符中是否出现在此处;方法 2:使用字符串函数 strstr()。
参考程序: #include \main() {
int i,j;
char a[80], b[80]; gets(a); gets(b); {
for(i=0;a[i]!='\\0';i++)
for(j=0;b[j]!='\\0';j++)
if(a[i+j]!=b[j]) break;
if(b[j]=='\\0') break;
}
if (a[i]!='\\0') printf(\else printf(\}
23