c语言上机实验题 联系客服

发布时间 : 星期六 文章c语言上机实验题更新完毕开始阅读e60d91fe172ded630b1cb6da

c[k++]=b[j++]; else

c[k++]=a[i++]; }

while(i

c[k++]=a[i++]; }

while(j

c[k++]=b[j++]; }

for(l=0;l

printf(\ } }

int main() {

int a[6]={1, 2, 5, 8, 9, 10}; int b[6]={1, 3, 4, 8, 12, 18}; int c[12]={0}; conj(a, 6, b, 6, c); getch(); }

43.下列程序的功能是将字符串中的数字字符删除后输出。程序中有些错误,试改正使其完成所要求的功能。 【源程序】

#include } void delnum(char s[80]) { #include int i,j; #include for (i=0,j=0;s[i]!='\\0';i++) void delnum(char s[80]) if (s[i]>'0'&& s[i]<'9') { int i,j; { s[j]=s[i]; j++ } for(i=0,j=0;s[i]!='\\0';i++) s[i]='\\0'; if(s[i]>='0'&&s[i]<='9') } { strcpy(&s[i],&s[i+1]); void main() j=--i; } { strcpy(&s[i],'\\0'); char item[80]; } gets(item); void main() delnum(item); { printf(\ char item[80];

gets(item); printf(\ delnum(item); }

44.请设计程序,将一字符串做压缩处理。编程要求如下:

(1) 编写一个函数int compress(char s[]),将s中连续出现的多个相同字符压缩为一个字符,统计被删除的字符个数,返回被删除的字符个数;

(2) 编写函数main,从键盘读入一行字符数据存入一个字符型数组中,调用compress函数对该字符数组中存储的字符做压缩处理,输出压缩后的字符串。

测试数据:

@@@@@@ I wwillll succesful &&&&&& and you too !!!!!!########## 运行结果:

@ I wil sucesful & and you to !# 30

#include #include int compress(char a[]) {

int i,j=0,k=strlen(a); for(i=0;i

void main() {

char str[81]; int t; gets(str);

t=compress(str); puts(str);

printf(\ getch(); }

45.请按下列要求编写程序:

(1) 编写函数void fun(char x[]),其功能是在x指向的字符串中的所有数字字符之前分别插入1个字符'$';

(2) 编写main函数,定义一个字符数组a,用测试数据中的数据初始化字符数组a,用a作为实在参数调用函数fun,输出结果字符串。

测试数据:a1b34cdef5 运行结果:a$1b$3$4cdef$5

#include

#include void fun(char x[]){ char a[40]; int i=0, j=0;

while(x[i] != '\\0'){

if(x[i]>='0' && x[i] <='9'){ a[j++]='$'; a[j++]=x[i]; } else {

a[j++]=x[i]; } i++; }

a[j] = '\\0';

printf(\}

void main () {

char a[20];

scanf(\ fun(a); getch(); }

46. 请编辑调试下列程序,观察并理解其运行结果。 【源程序】

#include void main() {

char s[]=\ char *p=s; printf(\ }

47.在一行文本中查找给定的单词。一行文本由字母和分隔符组成,分隔符包括若干空格、逗号、句号和换行符。一个单词由若干个连续字母组成。

实现提示:main函数中word数组存放欲查找的单词。find_word函数完成在t字符串中查找单词w的功能,先从t串中找出一个单词,再与w进行比较,如果找到则返回单词w在t串中第一次出现的位置,否则返回-1。

【源程序】

#include #include #include #include #include #include void main() void main() { { char text[80]= \will pass the char text[80]=\examination in the summer the summer holiday.\holiday.\ int t;

int t; puts(\ puts(\ gets(word); gets(word); t=find_word(text,word); t=find_word( ); if(t!=-1) if( ) printf(\word %s in text.It locates printf(\word %s in text . It in %d.\\n\locates in %d.\\n\ else

else printf(\ printf(\ getch(); } } find_word(char t[] , char w[]) find_word(char t[] , char w[]) { { char s[20]; char s[20]; int i , j ; int i , j ; for(i=0; t[i]!='\\0'; i++) for(i=0; t[i]!='\\0'; i++) { if(isalpha(t[i])) { if(isalpha(t[i])) { for(j=0; isalpha(t[i+j]); j++) { for(j=0; isalpha(t[i+j]); j++) s[j]=t[i+j]; s[j]= ; s[j]='\\0'; s[j]='\\0'; if(strcmp(w,s)==0) if(strcmp(w,s)==0) return i;

return ; i=i+j ;

i= ; } } } } return -1; return -1; } }

48. 以下程序中,函数encode欲完成一个字符串的加密功能,将s1字符串中的字符经过变换后保存到s2指向的字符数组中。二维数组cs保存了一个明码密码对照表,第一行是明码字符,第二行是对应的密码字符,如表10-1所示。加密方法:从s1字符串中每取一个字符,均在cs表第一行中查找有无该明码字符,若找到则将对应的密码字符放入s2中,否则将s1中原来的字符放入s2中。程序中有些错误,请改正之使其完成所要求的功能。

表10-1 二维数组cs存储的明码密码对照表