77范文网 - 专业文章范例文档资料分享平台

C语言练习册

来源:网络收集 时间:2018-10-20 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

《程序设计基础(C语言)》练习册 第 21 页 共 158 页

函数体)。

(3) 静态变量的用法分析(求阶乘的算法之一);打印1~5的阶乘,请上机输入、调试和运行以

下程序,并分析变量f的值在每次调用后的结果。 #include int fac(int n) {

static int f=1; f=f*n; return(f); } void main() { int i;

for(i=1;i<=5;i++)

printf(―%d!=%d\\n‖,i,fac(i)); }

实验9 指针(1)

1) 实验目的

(1) 掌握地址、指针、指针变量的概念。 (2) 能正确定义所需类型的指针变量。

(3) 在形式参数和实际参数中能正确定义指针变量。 (4) 灵活引用指向数组的指针变量。 (5) 掌握指针型函数的用法。 2) 实验内容

(1) 下面给出一个函数。它能检查给定的字符串s是否满足下列两个条件。 ①字符串s中的左括号的个数与右括号的个数相同。

②从字符串首字符起顺序检查s的过程中,遇到右括号的个数在任何时候均不超过左括号的个数。 ③若字符串s同时满足上面两个条件,则函数返回非0值,否则返回0。 完成填空并上机调试通过该程序。 int check(a) ① ; { int m,n; m=0,n=0; while( ② ) {

if(*s==?(‘) m++; else if(*s==?(‘)

《程序设计基础(C语言)》练习册 第 22 页 共 158 页

{ n++; if( ③ ) ruturn(0); }

④ ; }

return( ⑤ ); }

(2)下列程序的作用是计算数组中的最大元素值及下标。完成填空并上机调试通过该程序。 #include void max(int *s,int t,int *k) { int p;

for(p=0,*k=p;ps[*k]) ① ; }

void main() {

int a[10],I,k; for (i=0;i<10;i++) scanf(―%d‖,a+i); ② ; printf(―%d,%d‖,k,a[k]); }

(3)编制函数完成以下功能:按指定位置在字符串s1中插入字符串s2。 例如:输入:I am a teacher. am 2

输出;I am a teacher.

实验10 指针(2)

1) 实验目的

(1) 掌握指向字符串的指针变量的定义。 (2) 掌握ASCII字符的比较方式。 (3) 掌握数组中数据交换的算法。 (4) 掌握函数中指针变量的用法。 2) 实验内容

(1) 下列程序是对字符串内字符进行简单排序,请改正程序中的错误。

《程序设计基础(C语言)》练习册 第 23 页 共 158 页

#include #include sort(char *item,int count) { int a,b,c; char t;

for(a=0;a

t=item[a];

for(b=a+1;b

void main() {

char s[80];

printf(―enter a string:\\n‖); gets(*s); sort(s,strlen(s));

printf(―the sorted string is:%s\\n‖,s); }

(2)下面是用指针方式处理判断字符串是否相等的函数,相等返回0,不相等返回第一个不等字符的ASCII码值的差。完成填空并上机调试通过该函数,编制一个主函数验证该函数正确性。

int compy(char*s,char *t) {

while( ① ) {

if( ② ) return(0); s++,t++; } return(*s-*t); }

(3)用指针的方法将一个整数插入到有序数列中,使之仍然有序。

《程序设计基础(C语言)》练习册 第 24 页 共 158 页

实验11 数组(1)

1) 实验目的

(1) 掌握一维数组和二维数组的定义、赋值和输入输出的方法。 (2) 掌握数组元素的引用方法。

(3) 掌握数组与指针间的关系以及数组作为函数参数的使用方法。 (4) 掌握与数组有关的算法(特别是排序)。 2) 实验内容

(1) 数组基本操作。仔细阅读下面程序,读懂该程序完成的功能,运用后分析结果。 #define SIZE 30 #include void main() {

float b[SIZE/5],sum; int a[SIZE],i,j,k; for(k=2,i=0;i

k+=2;

} sum=0.0;

for(k=0,i=0;i

sum +=a[i]; if((i+1)%5==0) {

b[k]=sum/5; sum=0; k++;

}

}

printf(―The result is:\\n‖); for(i=0;i

(2) 下面程序的功能是:从键盘输入一个常数,并将其插入到以按升序排列的数组中,要求插入操作完成后,数组中的元素仍按升序排列。

#include

《程序设计基础(C语言)》练习册 第 25 页 共 158 页

void main() {

int value,t1,t2,i,j;

static int a[11]={5,11,21,31,41,51,61,71,81,91};

/*在a数组中多设一个元素的位置,以便进行插入操作*/ for(i=0;i<10;i++) printf(―%d ‖,&a[i]); putchar(?\\n‘);

scanf(―%d‖, &value); /*读入待插入的数据*/

if(value>=a[9]); /*若value大于等于原数组中最后一个元素*/ ① ; /*则将其插入数组中的最后一个位置*/ else

for(i=0;i<10;I++) if(a[i]>value) { t1=a[i]; ② ; for (j=i+1;j<11;j++) {

t2=a[j];

a[j]=t2; /*保存下次插入的数据*/

}

⑶ ; /*插入完成后,直接跳出外层循环*/ }

for(i=0;i<11;i++) printf(―%d ‖,a[i]);

}

(3)下面程序的功能是;从键盘上键入10个整数,使用冒泡法将其按从小到大的顺序排列。程序中带*行有错,请改正后调试通过该程序。

#include void main() {

int a[10],i,j,temp;

printf(?Input 10 integer numbers:‖); for(i=0;i<10;i++); * scanf(―5d‘,a[i]); for(i=0;i<10;i++) for(j=0;j<9-i:j++) * if(a[j]>a[j+1]);

{

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言练习册在线全文阅读。

C语言练习册.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/221735.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: