教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

C语言实验总答案(7)

来源:网络收集 时间:2026-05-14
导读: } printf(\请输入 %d*%d 矩阵:\\n\for(i=0; i scanf(\ //求各行之和并输出 for(i=0; i for(j=0; j printf(\} 5. 编程:判断一个二维数组是否存在鞍点,若存在,则输出鞍点及其行号和列号;否则输出没有鞍点信息。“

}

printf(\请输入 %d*%d 矩阵:\\n\for(i=0; i

scanf(\

//求各行之和并输出 for(i=0; i

for(j=0; j

printf(\}

5. 编程:判断一个二维数组是否存在鞍点,若存在,则输出鞍点及其行号和列号;否则输出没有鞍点信息。“鞍点”是指这样的元素:它在本行是最大元素,而在本列是最小的元素。 Input m , n: 2 2

Input 2*2 matrix: 4 5 5 6

i=0, j=1, saddle point: 5

提示:找鞍点需要处理三件事情:(1)找每行中最大值所在的列下标;(2)判断该元素在本列上是否为最小;(3)判断是否找到了鞍点,若找到,输出。

#include void main() {

int a[10][10]; //设定矩阵最大为10 x 10 int m, n, i, j, col, flag=0; printf(\请输入矩阵的行数和列数:\scanf(\

if(m<0 || m>10 || n<0 || n>10) {

printf(\行或列(1~10)值超出范围\

return; //退出程序 }

printf(\请输入 %d*%d 矩阵:\\n\for(i=0; i

scanf(\for(i=0; i

col=0; //找出第i行中的最大值所在列下标col for(j=1; j

}

if(a[i][col]

for(j=0; ja[j][col]) break;

if(j==m) {

flag=1; //有鞍点

printf(\ } }

if(flag==0)

printf(\

三、字符串实验

1. 以下程序功能为:输入一个字符串,将其逆序输出。找出并改正以下源程序中错误,通过调试得出正确的运行结果。

源代码(有错误的程序) #include #include void main() { int i,j; char s[80],result[80]; printf(\ gets(s); for(i=strlen(s)-1,j=0;i>=0;i--,j++) { result[j]=s[i]; } result[j]='\\0'; //必须给字符串加上串结束标志 printf(\ puts(result); }

运行结果(改正后的程序) Enter a string : asdfg

This is the reverse string: gfdsa

2. 编程:任意输一个字符串保存在一维字符数组中,求其长度(不用strlen函数)。例如: Input a string: aadfdg length=6

提示:字符串的有效长度就是有效字符的个数,即数组中第一个‘\\0’前面的字符个数。

#include void main() {

int i, len=0; char s[80];

printf(\请输入字符串,以回车键结束:\gets(s);

for(i=0; s[i]!='\\0'; i++) len++;

printf(\字符串%s的长度为:%d\\n\}

3. 编程:任意输入两个字符串分别保存在一维字符数组中,把第二个字符串连接到第一个字符串末尾(不用strcat函数)。例如:

Input two string:

asdfg erty

after strcat: asdfgerty

#include void main() {

int i,j;

char s1[80], s2[80];

printf(\请输入字符串1以回车键结束:\\n\gets(s1);

printf(\请输入字符串2以回车键结束:\\n\gets(s2);

for(i=0; s1[i]!='\\0'; i++) ; /* 定位第一个字符串的结束标志*/ for(j=0; s2[j] && i<80; i++, j++ ) /*将s2接到s1后*/ s1[i]=s2[j];

s1[i]='\\0';

printf(\两个串连接后:%s\\n\}

4. 编程:从键盘读入两个字符串分别保存在一维字符数中,比较两个字符串大小(不用strcmp函数),输出较大的字符串。

#include void main() {

int i;

char a[80], b[80];

printf(\请输入字符串1以回车键结束:\\n\

gets(a);

printf(\请输入字符串2以回车键结束:\\n\gets(b);

//逐个比较直到两个字符不同或其中一个字符串结束 for(i=0; a[i] && b[i] ; i++) {

if(a[i]!=b[i]) break; }

if (a[i]>b[i])

printf(\第一个字符串%s大!\\n\else if (a[i]==b[i])

printf(\两字符串相同!\\n\else

printf(\第二个字符串%s大!\\n\

}

5. 编程:任意输入一个字符串保存在一维字符数组中,判断里面数字字符的个数。例如: Input a string: adg4521gadg4adg number: 5

#include void main() {

int i, n=0; char s[80];

printf(\请输入一个字符串以回车键结束:\\n\gets(s);

for(i=0 ; s[i]; i++)

if(s[i]>='0' && s[i]<='9') n++;

printf(\字符串中包含的数字个数为:%d\\n\}

6. 编程:从一个字符串中删除从某个特定字符开始的所有字符。例如原字符串为\,特定字符为'd',删除后的字符串为\。

#include void main() {

int i, flag=0; char c, s[80];

printf(\请输入一个字符串以回车键结束:\\n\gets(s);

printf(\请输入特定字符:\c=getchar();

for(i=0 ; s[i]; i++) if(s[i]==c) {

s[i]='\\0'; flag=1; break; } if(flag==0)

printf(\输入字符中没有特定字符!\\n\ else

puts(s); }

7. 编程:编写程序,从一个输入的字符串中抽取一部分(从第n个字符开始,抽取m个字符)构成一个新的字符串,并输出。要求:n和m都由用户输入。

#include #include void main() {

unsigned int i, j, m, n; char s1[80], s2[80];

printf(\请输入一个字符串以回车键结束:\\n\gets(s1);

printf(\请输入子串的起始位置和长度:\scanf(\

if( n>0 && n<=strlen(s1) ) {

if (m>0 && n+m <= strlen(s1)+1 ) {

for(i=n-1,j=0; s1[i] && i< n+m-1 ; i++, j++) s2[j]=s1[i];

s2[j]='\\0'; puts(s2); } else

printf(\长度超出范围!\\n\} else

…… 此处隐藏:1009字,全部文档内容请下载后查看。喜欢就下载吧 ……
C语言实验总答案(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/412690.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)