首页 二级C语言机试模拟136

二级C语言机试模拟136

举报
开通vip

二级C语言机试模拟136二级C语言机试模拟136 1、填空题 1、请补充main函数,该函数的功能是:把字符串str中的字符向前移 动一位,原来的第一个字符移动到字符串尾,结果仍然保存在原字符串中。 例如,输入“how do you do?”,则结果输出“ow do you do?h”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线 上填入所编写的若干表达式或语句。 试题程序: #include #define N 80 main() { char str...

二级C语言机试模拟136
二级C语言机试模拟136 1、填空 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 1、请补充main函数,该函数的功能是:把字符串str中的字符向前移 动一位,原来的第一个字符移动到字符串尾,结果仍然保存在原字符串中。 例如,输入“how do you do?”,则结果输出“ow do you do?h”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线 上填入所编写的若干表达式或语句。 试题程序: #include #define N 80 main() { char str[N], ch; int i; clrscr (); printf("\n Input a string:In"); gets (str); printf("\n*** original string ***In"); puts (str); ch=str [0]; for (i=0; 【1】; i++) str [i]=str [i+1]; 【2】; printf("\n *** new string ***\n"); puts (str); } 2、改错题 1、下列给定程序中,函数fun()的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示的数据,由 main()函数输出。 例如,若输入2,则输出1 2 2 4 输入4,则输出1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构. 试题程序: #include #include #define M 10 int aiM] [MI={0}; /***************found*******************/ fun( int **a, int m) {int j,k; for (j=0; j #include #define N 80 void fun (char *w, int m) { } main ( ) { char a[N]= "ABCDEFGHIJK"; int m; printf ("The origina string : \n"); puts (a); printf("\n\nEnter m: "); scanf ("%d", &m); fun (a, m); printf (" \nThe string after moving : \n"); puts (a); printf ("\n\n"); } 答案: 1、填空题 1、[1] str[i+1] [2]str[i]=ch [解析] 填空1:for循环的条件是要移动的字符不为'0',即还没有到字符串的最后一个字符。填空2:ch中保存了字符串的第一个字符,按题目要求移动到 字符串尾,而str[i]是'\0'的前一个字符,也就是字符串尾,故将ch赋给 str[i]。 2、改错题 1、(1)错误:fun(int**a, int m) 正确:void fun(int(*a)[M],int m) (2)错误:a[j][k]=k*j;正确:a[j][k]=(k+1)*(j+1); [解析] 对于二维数组,应该理解成为是由几个一维数组作元素组成的一维数组,或者说,二维数组实际是一个一维数组,只不过它的每个数组元素又都是一个 一维数组。我们先来看看指针数组的表示形式: (1)p+i和a+i均表示a[i]的地址,或者讲,它们均指向数组第i号元素,即指向a[i]。 (2)*(p+i)和*(a+i)都表示p+i和a+i所指对象的内容,即为a[i]。 (3)指向数组元素的指针,也可以表示成数组的形式,也就是说,它允许 指针变量带下标,如p[i]与*(p+i)等价。因此,二维数组元素a[i][j]可表示 成*(a[i]+j)或*(*(a+i)+j),它们都与a[i][j]等价,或者还可写成 (*(a+i))[j]。了解了以上这些内容后本题就好解决了。 3、编程题 1、void fun(char *w,int m) { int i,j; char t; for(i=1;i<=m;i++) /*进行m次的循环左移*/ {t=w[0]; for(j=1/w[j]!='\0';j++) /*从第2个字符开始以后的每个字符都依次前移一个字符*/ w[j-1]=w[j]; w[j-1]=t;/*将第1个字符放到最后一个字符中*/ } } [解析] 我们在学习C语言的时候,应该广泛地应用到循环的方法,本题应采用“循环左移”的算法。即从第2个字符开始以后的每个字符都依次前移一个字符,而原来的第1个字符放在串中的最后一个字符。当要平移m个字符时,则要进行m次的循环左移。内嵌的循环的作用是完成从第2个字符开始以后的每个字符都依次前移一个字符,w[j-1]=t的作用是将第1个字符放到最后一个字符中。
本文档为【二级C语言机试模拟136】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_079973
暂无简介~
格式:doc
大小:20KB
软件:Word
页数:0
分类:其他高等教育
上传时间:2019-06-16
浏览量:9