2019上海理工大学c语言答案,上海理工大学C语言实验7答案.doc

62e50291a81fc54b507f33cb80033297.gif 上海理工大学C语言实验7答案.doc

(10页)

8d903849507c7826510ac71537618c05.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

7.9 积分

实验7 字符数组和字符串参考答案[DIY]1、调试下列程序(下列各程序中存在一些问题,通过调试发现问题,并加以修正,使其实现预期目标)[1.1] 以下程序统计字符串str中字符‘#’与数字字符的个数。[代码] #include main() { char str[81]; int n1,n2; gets(str); for ( i = 0; str[i] ! = ‘\0’; i++ ){ if ( str[ i]=‘#’ ) n1 ++; if (str[i]>=0 && str[i] <= 9 ) n2 ++; } printf( “#=%d, digit=%d\n”, n1, n2 ); }参考答案:#include main() { char str[81]; int i,n1=0,n2=0; gets(str); for(i=0; str[i]!='\0';i++) { if (str[i]=='#') n1++; if (str[i]>='0' && str[i]<='9') n2++; } printf( "#=%d, digit=%d\n", n1, n2 ); }[1.2] 有n个国家参加运动会,开幕式上,各国的出场顺序以国名在英文字典中的位置先后为序,输出一份各国出场顺序表。[代码]#include#include#define N 10main(){ char name[N][30], str[30]; int i, j; printf("Enter the name:\n "); for(i=0; i='0'&&s[i]<='9') 3.编程[3.1] 最多从键盘输入80个字符,遇到回车键就结束,将输入的字符串按奇偶位置拆分,奇数位字符在前偶数位字符在后重新组成新的字符串输出,例如输入: ab12cd3456fg,则经过程序处理后输出: a1c35fb2d46g 。#include "stdio.h"#include "string.h"main(){ char s[100],d[100],c[100]; int i,j,k; i=j=k=0; while((s[i]=getchar())!='\n') {if((i+1)%2) d[j++]=s[i++]; else c[k++]=s[i++]; } d[j]=c[k]='\0'; strcat(d,c); strcpy(s,d); puts(s);}[3.2] 编程序把从键盘输入的英文短文作为一个字符串(长度不超过80),把短文中每个单词的首字母改成大写(原输入可以是大写),若还发现有两个或两个以上连续的空格,把它们删成只有一个空格,输出修改后的字符串。#include#includechar cha(char a){ char c; if(a>='a'&&a<='z') c=a-32; else c=a; return c;}main(){ char str[81],s[81],s1[81],c; int i,j,k,word=0; printf(。省略部分。j]; str[j]=k; }puts(str); }三、程序调试题(10分) 1、下面程序功能是输入一个字符串,并将其中的字符’a’用字符串”shu”替代后输出。如输入为”123abcaHello”,则输出为”123shubcshuHello”。[程序3-1] #include void main() { int i; char line[81]; scanf(“%s”,&line); for (i=0; line[i]!=’\n’; i++) if (line[i]==’a’) printf(“shu”); else printf(“%s”,line[i]); }参考答案:#include void main() { int i; char line[81]; scanf("%s",&line); for (i=0; line[i]!='\0'; i++) if (line[i]=='a') printf("shu"); else printf("%c",line[i]); }2、下列程序的功能是:将字符串b连接到字符串a。[程序3-2]#includevoid main( ){ char a[]="wel",b[]="come"; int i,n=0; while(!a[n]) n++; for(i=0;b[i]!='\0';i++) a[n+i]=b[i]; printf("%s\n",a);}参考答案:#includevoid main( ){ char a[20]="wel",b[]="come"; int i,n=0; while(a[n]) n++; for(i=0;b[i]!='\0';i++) a[n+i]=b[i]; printf("%s\n",a);}四、程序填空题(30分)1、下面的程序功能是根据输入的学生姓名,查看该生是否是某个班的学生。(假设某个班有30人,姓名已根据字母顺序排列,即输入的班级学生姓名是有序的)[程序4-1]#include#include#define N 10main(){ char name[N][30], str[30]; int i,low=0,high=N-1,m,find=0,lc; printf("Enter the name:\n "); for(i=0; i='a'&&s[j]<='z') s[j]=s[j]-32;j++;} puts(s);}2、不用C字符串函数,编写一个实现两个字符串连接的函数。#include "stdio.h"void main(){ char s1[100],s2[100],s3[200];int i=0,j=0,k=0; gets(s1);gets(s2); while(s1[i]!='\0') { s3[j++]=s1[i];i++;} while(s2[k]!='\0') { s3[j++]=s2[k];k++;} s3[j]='\0';puts(s3);} 关 键 词: 上海 c语言 实验 理工大学 答案

524d6daf746efaa52c3c71bbfe7ba172.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值