《程序设计基础(C语言)》练习册 第 21 页 共 158 页
函数体)。
(3) 静态变量的用法分析(求阶乘的算法之一);打印1~5的阶乘,请上机输入、调试和运行以
下程序,并分析变量f的值在每次调用后的结果。 #include
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
for(p=0,*k=p;p
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
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 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 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语言练习册在线全文阅读。
相关推荐: