实验六 数组程序设计(2) - 下载本文

实验六 数组程序设计(2)

【本次实验目的】

1. 掌握字符数组的定义、初始化、输入输出。 2. 常用字符串函数:puts() gets() strcpy() strcat() strcmp() strlen() strupr() strlwr()

要求:按照要求,在vc环境下调试运行程序,直到得到正确的结果,将填好、改好或编好的程序代码写在作业本上。

【实验内容】

一、程序填空:注意:不要改动main函数, 不得增行或删行, 也不得更改程序的结构! (1)以下程序的功能是:求3个字符串(每串不超过20个字符)中的最大者。补充完善程序,以实现其功能。

#include #include #define N 3 void main() {

char string[20], str[N][20]; int i, k; for (i=0;i

if ( ) k=1;

if ( ) k=2;

(string,str[k]);

printf(\最大串是:\ puts(string); }

(2)以下程序的功能是:采用二分法在给定的有序数组中查找用户输入的值,并显示查找结果。补充完善程序,以实现其功能。

#include \#define N 10 main() {

int a[ ]={0,1,2,3,4,5,6,7,8,9},k; int low=0,high=N-1,mid,find=0; printf(\请输入欲查找的值:\\n\scanf(\while (low<=high) {

; if(a[mid]==k) {

printf(\找到位置为:%d\\n\find=1;

}

if(a[mid]>k)

; else

; }

if(!find) printf(\未找到\\n\}

(3) 从键盘输一个字符串,查找某个字符出现的次数。例如字符串为“SADSAAdggaA”,输入待查找的字符为‘A’,则其出现的次数为4。 #include #include void main() { char s[30] , ch;//ch存放待查找的字符 int i, n = 0;//存放查找到的次数 printf(\ ; printf(\ ; i=0; while( ) { if( s[i]==ch ) n++; ; } printf(\}

二、改错题:

(1)下列程序的功能为:将字符串b连接到字符串a。纠正程序中存在的错误,以实现其功能。注意:不要改动main函数, 不得增行或删行, 也不得更改程序的结构!

#include void main( )

{ char a[ ]=\ int i,n=0;

while( !a[n] )

n++;

for(i=0; b[i]!='\\0';i++) a[n+i]=b[i];

a[n]= '\\0'; printf(\}

(2)下列给定程序的功能是:在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,输入字符串:MCDsGH,运行程序后的结果为:sMCDGH。 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include

void main() {

char str[80],max; int i,k=0;

printf(\ gets(str); i=1;

while(str[i]!='\\0') //找最大字符所在的位置,存放到变量K { if(str[i]

max=str[k]; while(k>0) //字符后移 { str[k-1]=str[k]; k++; }

str[0]=str[k]; //写入字符到str[0] printf(\ \ puts(str); printf(\ }

(3)下列给定程序的功能是:逐个比较m、m两个字符串对应位置中的字符,把ASCII值较大或相等的字符依次存放到p数组中,形成一个新的字符串。例如,若m数组中的字符串为aBCDeFgH, n数组中的字符串为:ABcd,则p数组中的字符串应为:aBcdeFgH。 请改正程序中的错误,使程序能得出正确的结果。

注意:不要改动main函数, 不得增行或删行, 也不得更改程序的结构!

#include #include void main() {

char m[10]=\ int i=0; while(m[i] > n[i] != '\\0') //逐个比较两个字符串中的符号,直到串尾,将较大的字符写入数组p { if(m[i]!=n[i]) p[i]=m[i]; else p[i]=n[i]; i++; }

printf(\ puts(m); printf(\ puts(n); printf(\ puts(p);

}

三、编程题

(1)从键盘输入一个字符串,删除其中某个字符。如输入字符串“abcdefededff”,删除其中的字符e,则输出的字符串为“abcdfddff”。

(2)从键盘输入5个串,按长度从长到短输出。

(3)(选做,将写好可以运行的程序代码,发到信箱:370233208@qq.com。平时成绩加分。注意主题写明你的学号,否则白做了哦!)

从键盘输入一个阿拉伯数字表示的金额,然后输出其汉字形式。例如:输入12345.67,则输出:壹万贰仟叁佰肆拾伍元陆角柒分