版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C程序设计》试验教學大纲一、合用范围大纲合用信息管理专业本科教學使用。二、課程名称C程序设计三、課時数与學分總課時:90總學分:4试验課時:28试验學分:1四、教學目的和基本规定目的:通過C程序设计试验,培养學生對學习程序设计的愛好,加深對讲授内容的理解,尤其是通過上机来掌握語法规则,使學生全面理解C語言的特點,纯熟掌握C語言程序设计的基本措施和编程技巧。基本规定:理解和熟悉C語言程序開发的环境;學會上机调试程序,善于发現程序中的錯误,并且能很快地排除這些錯误,使程序能對的运行,到达试验知识和理论知识的融會贯穿。上机试验前,學生必须事先根据題目的内容编好程序,然後在试验時输入程序、调试程序、直至运行成果對的為止,上机結束後,应整顿出试验汇报。五、试验项目与課時分派序号试验项目名称试验課時试验类型1C程序的运行环境和运行一种C程序的措施2验证性试验2数据类型、运算符和体現式3验证性试验3最简朴的C程序设计3验证性试验4选择构造程序设计4设计性试验5循环控制4设计性试验6数组4设计性试验7函数4设计性试验8指针4设计性试验總计28注:带*的试验项目為选做试验项目六、教材、讲义及参照書《C程序设计題解与上机指导》谭浩强主编清华大學出版社七、试验成绩评估措施试验成绩=平時试验体現+试验汇报。试验成绩占總成绩的20%。试验成绩以等级形式給出,评估等级分优、良、中、及格、不及格五类。1、平時考核:上机试验前,學生必须事先根据題目的内容编好程序,然後在试验時输入程序、调试程序、直至运行成果對的為止。在试验中,教師可根据學生编程操作能力、观测和分析及运用知识能力、程序编制對的性以及學生的課堂纪律、试验态度、保持试验室卫生等方面的体現進行综合考核。2、试验汇报:學生试验後应准時完毕试验汇报。八、试验教學大纲阐明本大纲共安排28課時的试验,其中带*号试验项目為选做试验项目,实际課時為18課時。试验项目多為设计性试验项目,每個设计性试验项目中都包括数個小的设计性題目,其中带*号的題目為选做題目,有時间和有能力的同學可以选做。九、试验项目试验一C程序的运行环境和运行一种C程序的措施一、试验目的1.理解VisualC++6.0编译系统的基本操作措施,學會独立使用该系统。2.理解在该系统上怎样编辑、编译、连接和运行一种C程序。3.通過运行简朴的C程序,初步理解C源程序的特點。二、试验内容1.用编辑程序,输入教材第一章例1.1程序,并進行编译和运行。应理解所用的系统是用什么命令進行编译和连接运行的。编译和连接後所得到的目的程序的後缀是什么形式的?2.编写一种C程序,输出如下信息:****************************verygood!****************************3.输入并运行教材第一章中例1.3,理解怎样在运行時向程序变量输入数据。试验二数据类型、运算符和体現式一、试验目的1.掌握C語言数据类型,熟悉怎样定义一种整型、字符型、实型变量,以及對它們赋值的措施,理解以上类型数据输出時所用格式转换符。2.學會使用C的有关算术运算符,以及包括這些运算符的体現式,尤其是自加(++)和自減(--)运算符的使用。二、试验内容1.输入并运行如下程序:main(){charc1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);}在此基础上①将第三行、第四行改為:c1=321;c2=353;再使之运行,分析其运行成果。②将第二行改為:intc1,c2;再使之运行,分析其运行成果。。2.输入并运行如下程序:main(){inti=8,j=10,m,n;m=++i;n=j++;printf(“%d,%d,%d,%d\n”,i,j,m,n);}分别作如下改動并运行:①程序改為:main(){inti=8,j=10;printf(“%d,%d\n”,i++,j++);}②在②的基础上,将printf語句改為:printf(“%d,%d\n”,++i,++j);③再将printf語句改為:printf(“%d,%d,%d,%d\n”,i,j,i++,j++);④程序改為:main(){inti=8,j=10,m=0,n=0;;m+=i++;n-=--j;printf(“i=%d,j=%d,m=%d,n=%d\n”,i,j,m,n);}3.請将下列給出的两個程序段分别输入计算机後,分析其运行成果:=1\*GB3①main(){intnum;num=32767;printf(“num=%d\n”,++num);}=2\*GB3②main(){inta=-2;printf(“%d,%d\n”,a,a--);}试验三最简朴的C程序设计一、试验目的1.掌握C語言中使用最多的一种語句——赋值語句的使用。2.掌握数据的输入输出的措施,能對的使用多种格式转换符。二、试验内容1.上机输入如下程序:main(){inta,b;floatc;scanf(“%d%d%f”,&a,&b,&c);printf(“a=%-4d,b=%4d,c=%f,c=%.2f\n”,a,b,c,c);}要使a=3,b=4,c=12.3456,在键盘上应怎样输入?有几种方式?2.若将输入函数改為scanf(“%d,%d,%f”,&a,&b,&c);应當怎样输入数据?3.上机输入如下程序:main(){inta;floatb;charc;scanf(“%4d%5f%3c”,&a,&b,&c);printf(“a=%d,a=%o,a=%x,b=%8.3f,b=%4.0f,c=%c\n”,a,a,a,b,b,c);}要使a=77,b=4.56,c=‘A’,在键盘上应怎样输入?4.输入两面整型变量a、b的值,输出下列算式以及运算成果。a+b、a-b、a*b、a/b、(float)a/b、a%b每個算式占一行。如a等于10,b等于6,a+b应输入為:10+6=165.编写程序,用getchar函数讀入两個字符c1、c2,然後分别用putchar函数和printf函数输出這两個字符。上机运行程序,比较用printf和putchar函数输出字符的特點。试验四选择构造程序设计一、试验目的1.理解C語言表达逻辑量的措施(以0代表“假”,以1代表“真”);2.學會對的使用逻辑运算符和逻辑体現式;3.纯熟掌握if語句和switch語句。二、试验内容先编程序,解如下問題,然後上机调试运行程序。1.有一种函数用scanf函数输入x的值(分别為x<1、1~10、≥10三种状况),求y值。2.給出一种百分制成绩,规定输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上為‘A’,80~89分為‘B’,70~79分為‘C’,60~69分為‘D’,60分如下為‘E’。规定分别用if語句和switch語句实現3.输入一种三位数,若此数是水仙花数输出“Y”,否则输出“N”,若输入值不是三位数输出“dataerror”。提醒:水仙花数是一种三位数,构成這個三位数的三個数字的立方和与這個三位数相等。如:153=13+53+33。判断与否是水仙花数需把构成三位数的三個数字分离出来并存入变量。试验五循环控制一、试验目的1.熟悉用while語句,do-while語句和for語句实現循环的措施。2.掌握在程序设计中用循环的措施实現多种算法(如穷举、迭代、递推等)。二、试验内容编程序并上机调试运行。1.输入两個正整数,求其中最大公约数和最小公倍数。2.输入一行字符,分别记录出其中的英文字母、空格、数字和其他字符的個数。3.打印出如下图案:*************************4.编程求1!+2!+3!+……+20!。5.编写程序输出乘法表试验六数组一、试验目的1.掌握一维数组和二维数组的定义、赋值和输入输出的措施;2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(尤其是排序算法)。二、试验内容编程序并上机调试运行。1.编写程序,用scanf函数输入10個整数的数列,先将整数按照從大到小的次序進行排序,然後输入一种整数插入到数列中,使数列保持從大到小的次序。2.有15個数寄存在一种数组中,输入一种数,规定用折半查找法找出该数是数组中第几种元素的值,假如该数不在数组中,则输出“無此数”,并且可以实現持续查找。15個数用赋初值的措施在程序中給出,要找的数用scanf函数输入。3.将如下二维数组中数按列的次序寄存到一种一维数组中。二维数组的内容是112233441122334411223344则一维数组中的内容是1111112222223333334444444.将两個字符串连接起来,不要用strcat函数。5.從键盘输入5個字符串,找出最長的字符串和最大的字符串。试验七函数一、试验目的1.掌握定义函数的措施;2.掌握函数实参与形参的對应关系,以及“值传递”的方式;3.掌握函数的嵌套调用和递归调用的措施;4.掌握全局变量和局部变量,動态变量和静态变量的概念和使用措施。二、试验内容编程序并上机调试运行之。1.写一种判断素数的函数,在主函数输入一种整数,输出与否是素数的信息。2.两個函数,分别求两個整数的最大公约数和最小公倍数,用主函数调用這两個函数,并输出成果。两個整数在主函数中输入,并传送給函数1,求出的最大公约数返回主函数,然後再与两個整数一起作為实参传递給函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。3.已知二阶Fibonacci数列:0若n=0Fib(n)=1若n=1Fib(n-1)+Fib(n-2)其他状况定义递归函数求Fib(n)。4.编写函数,求试验八指针一、试验目的1.掌握指针的概念,會定义和使用指针变量;2.學會使用数组的指针和指向数组的指针变量;3.學會使用字符串的指针和指向字符串的指针变量;4.學會使用指向函数的指针变量;5.理解指向指针的指针的概念及其使用措施。二、试验内容编程序并上机调试运行程序(都规定用指针处理)。1.定义函数voidfun(intx[],int*max,int*min),找出数组x中的最大值和最小值,最大值和最小值通過形参指针max和min传回。2.编写一种函数comp(s1,s2)实現两個字符串的比较。假如s1=s2,则函数返回值為0;假如s1≠s2,返回它們两者第一种不一样字符的ASCII码差值(如“BOY”与“BAD”,第二個字母不一样,“O”与“A”之差為79-65=14);假如s1>s2,则输出正值;如s1<s2则输出负值。两個字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。3.從键盘输入一种字符串与一种指定字符,调用函数,将字符串中出現的指定字符所有删除。4.将一种3×3的矩阵转置,用一函数实現。在一主函数中用scanf函数输入如下矩阵元素:1357911131517将数组名作為函数参数,在执行函数的過程中实現矩阵转置,函数调用結束後在主函数中输出转置後的矩阵。试验九构造体和共用体一、试验目的1.掌握构造体类型变量的定义和使用;2.掌握构造体类型数组的概念和应用;3.掌握链表的概念,初步學會對链表進行操作;4.掌握共用体的概念与使用。二、试验内容编程序,然後上机调试运行。1.有3個學生,每個學生的数据包括學号、三门課的成绩,规定用input函数实現從键盘输入學生数据,用average函数求每個人的平均分,用output函数打印學生数据及平均成绩。2.建立一种带有頭結點的單链表,每個結點包括:學号、年龄,并输出链表中所有結點的数据。在链表中查找年龄最大的結點,并将链表中等于此年龄的結點删除(年龄最大的結點也許不止一种)。*3.将一种链表按逆序排列,即将链頭當链尾,链尾當链頭。4.上机输入如下程序:main(){unionbt{intk;charc[2];}a;a.k=-7;printf(“%o,%o\n”,a.c[0],a.c[1]);}分析其运行成果。试验拾位运算一、试验目的1.掌握按位运算的概念和措施,學會使用位运算符;2.學會通過位运算实現對某些位的操作。二、试验内容编写程序,上机调试并运行。1.编一种函数getbits,從一种16位的單元中取出某几位(即该几位保留原值,其他位為0)。函数调用形式為:getbits(value,n1,n2)value為该16位数的值,n1為欲取出的起始位,n2為欲取出的的結束位。如:getbits(0101675,5,8)表达對八進制数101675,取出其從左面起的第5位到第8位。规定把這几位数用八進制数打印出来。注意,应當将這几位数右移到最右端,然後用八進制形式输出。2.运用位运算操作,实現互换两個变量的值。3.将一种拾六進制整数的各位循环左移4位,然後用拾六進制形式输出。试验拾一文献一、试验目的1.掌握文献以及缓冲文献系统、文献指针的概念;2.學會使用文献打開、关闭、讀、写等文献操作函数。3.學會用缓冲文献系统對文献進行简朴的操作。二、试验内容编写程序并上机调试运行。1.编程序求100以内的素数,分别将它输出到显示屏屏幕和x.txt文献中,规定每行5個数。2.從键盘输入几本書的数据,每本書的数据包括条形码、書名和价格,将每项数据分别写入文本文献s.txt和二進制文献s.dat。*3.從上題的文本文献s.txt或二進制文献s.dat中讀入每本書的数据,计算所有書的平均价格。规定用input函数讀入,average函数求平均价格。记录与信息學院《C程序设计》试验汇报(一)學号:姓名:班级:成绩:试验名称:C程序的运行环境和运行一种C程序的措施指导教師:试验曰期:试验地點:试验软件(重要仪器设备):VisualC++6.0实验规定1.理解VisualC++6.0编译系统的基本操作措施,學會独立使用该系统。2.理解在该系统上怎样编辑、编译、连接和运行一种C程序。3.通過运行简朴的C程序,初步理解C源程序的特點。实验過程与步骤试验①:打開VisualC++6.0。新建文献C++SourceFile,文献名.c并更改位置後确定。编辑#include"stdio.h"intmain(){ printf("ThisisaCprogram.\n"); return0;}编译,無錯误無警告後执行试验②:#include"stdio.h"intmain(){ printf("****************************\n"); printf("Verygood!\n"); printf("****************************\n"); return0;}试验③:#include"stdio.h"intmain(){ printf("ThisisaCprogram.\n"); return0;}试验總結记录与信息學院《C程序设计》试验汇报(二)學号:姓名:班级:成绩:试验名称:数据类型、运算符和体現式指导教師:试验曰期:试验地點:试验软件(重要仪器设备):VisualC++6.0实验规定1.掌握C語言数据类型,熟悉怎样定义一种整型、字符型、实型变量,以及對它們赋值的措施,理解以上类型数据输出時所用格式转换符。2.學會使用C的有关算术运算符,以及包括這些运算符的体現式,尤其是自加(++)和自減(--)运算符的使用。实验過程与步骤试验①运行VisualC++6.0并新建工作区输入#include<stdio.h>main(){charc1,c2;c1=321;c2=353;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);}编译,無錯误、無警告後运行,成果如下:在环节2的基础上将第三行、第四行改為:c1=321;c2=353;编译,無錯误、無警告後运行,成果提醒:aa.obj-0error(s),2warning(s)在环节2的基础上将第二行改為:intc1,c2;编译,無錯误、無警告後运行,成果如下:试验②输入#include<stdio.h>main(){inti=8,j=10,m,n;m=++i;n=j++;printf("%d,%d,%d,%d\n",i,j,m,n);}试验③1、输入#include<stdio.h>main(){intnum;num=32767;printf("num=%d\n",++num);}编译,無錯误、無警告後运行,成果如下:2、编译,無錯误、無警告後运行,成果如下:将环节2程序改為:#include<stdio.h>main(){inti=8,j=10;printf("%d,%d\n",i++,j++);}编译,無錯误、無警告後运行,成果如下:在环节3的基础上,将printf語句改為:printf(“%d,%d\n”,++i,++j);编译,無錯误、無警告後运行,成果如下:在环节3的基础上,将printf語句改為:printf(“%d,%d,%d,%d\n”,i,j,i++,j++);编译,無錯误、無警告後运行,成果如下:将环节2程序改為:#include<stdio.h>main(){inti=8,j=10,m=0,n=0;m+=i++,n-=--j;printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);}10、编译、运行,成果如下:输入#include<stdio.h>main(){inta=-2;printf("%d,%d\n",a,a--);}编译,無錯误、無警告後运行,成果如下:试验總結记录与信息學院《C程序设计》试验汇报(三)學号:姓名:班级:成绩:试验名称:最简朴的C程序设计指导教師:试验曰期:试验地點:试验软件(重要仪器设备):VisualC++6.0实验规定1.掌握C語言中使用最多的一种語句——赋值語句的使用。2.掌握数据的输入输出的措施,能對的使用多种格式转换符。实验過程与步骤试验①运行VisualC++6.0并新建工作区输入#include<stdio.h>main(){inta,b;floatc;scanf("%d%d%f",&a,&b,&c);printf("a=%-4d,b=%4d,c=%f,c=%.2f\n",a,b,c,c);}编译,無錯误、無警告後运行,成果如下:有空格、tab、回車三种输入方式。将环节2中的scanf("%d%d%f",&a,&b,&c);改為scanf(“%d,%d,%f”,&a,&b,&c);编译,無錯误、無警告後运行,成果如下:试验②输入#include<stdio.h>main(){inta;floatb;charc;scanf("%4d%5f%3c",&a,&b,&c);printf("a=%d,a=%o,a=%x,b=%8.3f,b=%4.0f,c=%c\n",a,a,a,b,b,c);}编译,無錯误、無警告後运行,成果如下:试验③a+b输入#include<stdio.h>main(){inta,b,c;scanf("%d,%d",&a,&b);c=a+b;printf("%d+%d=%d\n",a,b,c);}编译,無錯误、無警告後运行,成果如下:a-b输入#include<stdio.h>main(){inta,b,c;scanf("%d,%d",&a,&b);c=a-b;printf("%d-%d=%d\n",a,b,c);}编译,無錯误、無警告後运行,成果如下:a*b输入#include<stdio.h>main(){inta,b,c;scanf("%d,%d",&a,&b);c=a*b;printf("%d*%d=%d\n",a,b,c);}编译,無錯误、無警告後运行,成果如下:试验④(1)getchar输出1、输入#include<stdio.h>intmain(){ charc1,c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); return0;}2、编译,無錯误、無警告後运行,成果如下:a/b1、输入#include<stdio.h>main(){inta,b,c;scanf("%d,%d",&a,&b);c=a/b;printf("%d/%d=%d\n",a,b,c);}2、编译,無錯误、無警告後运行,成果如下:(float)a/b1、输入#include<stdio.h>main(){inta,b,c;scanf("%d,%d",&a,&b);c=(float)a/b;printf("%d/%d=%d\n",a,b,c);}2、编译,無錯误、無警告後运行,成果如下:a%b1、输入#include<stdio.h>main(){inta,b,c;scanf("%d,%d",&a,&b);c=a%b;printf("%d%%%d=%d\n",a,b,c);}2、编译,無錯误、無警告後运行,成果如下:(2)printf输出1、输入#include<stdio.h>intmain(){ charc1,c2; c1=getchar(); c2=getchar(); printf("%c%c\n",c1,c2); return0;}2、编译,無錯误、無警告後运行,成果如下:试验總結记录与信息學院《C程序设计》试验汇报(四)學号:姓名:班级:成绩:试验名称:选择构造程序设计指导教師:张雄试验曰期:试验地點:试验软件(重要仪器设备):VisualC++6.0实验规定1.理解C語言表达逻辑量的措施(以0代表“假”,以1代表“真”);2.學會對的使用逻辑运算符和逻辑体現式;3.纯熟掌握if語句和switch語句。实验過程与步骤试验①运行VisualC++6.0。输入#include<stdio.h>intmain(){ intx,y; scanf("%d",&x); if(x<1) y=x; elseif(x>=10) y=3*x-11; else y=2*x-1; printf("x=%d,y=%d\n",x,y); return0;}编译,無錯误、無警告後运行,成果如下:X<1時,1=<x<10時,x>=10時,(2)switch語句1、输入#include<stdio.h>main(){ floatx;inty;charch; printf("Yourscore:"); scanf("%f",&x); y=x/10; switch(y) { case10:case9:ch='A';break; case8:ch='B';break; case7:ch='C';break; case6:ch='D';break; default:ch='E'; } printf("%c\n",ch); return0;}2、编译,無錯误、無警告後运行,成果如下:试验②(1)if語句1、输入#include<stdio.h>main(){ floatx;charch; scanf("%f",&x); if(x>=90)ch="A"; elseif(x>=80)ch="B"; elseif(x>=70)ch="C"; elseif(x>=60)ch="D"; elsech="E"; printf("%c\n",ch);}2、编译,無錯误、無警告後运行,成果如下:试验③:(水仙花数)1、输入#include<stdio.h>intmain(){ intm,a,b,c; scanf("%d",&m); if(m/100==0) { printf("dataerror\n"); return0; } a=m%10; b=(m/10)%10; c=m/100; if(m==a*a*a+b*b*b+c*c*c) { printf("Y\n",m); return0; } else { printf("N\n",m); return0; }}2、编译,無錯误、無警告後运行,成果如下:试验總結记录与信息學院《C程序设计》试验汇报(五)學号:姓名:班级:成绩:试验名称:循环控制指导教師:试验曰期:试验地點:试验软件(重要仪器设备):VisualC++6.0实验规定1.熟悉用while語句,do-while語句和for語句实現循环的措施。2.掌握在程序设计中用循环的措施实現多种算法(如穷举、迭代、递推等)。实验過程与步骤试验①:输入两個正整数,求其中最大公约数和最小公倍数。(1)求最大公约数1、输入#include<stdio.h>main(){intm,n,i,t;scanf("%d%d",&m,&n);if(n<m){t=n;n=m;m=t;}i=m;while(1){if(m%i==0&&n%i==0)break;i--;}printf("它們的最大公约数是:%d\n",i);return0;}2、编译,無錯误、無警告後执行,成果如下:(2)求最小公倍数1、输入#include<stdio.h>main(){intm,n,i,t;scanf("%d%d",&m,&n);if(n<m){t=n;n=m;m=t;}试验②:输入一行字符,分别记录出其中的英文字母、空格、数字和其他字符的個数。1、输入#include<stdio.h>main(){charc;intletter,space,number,other;letter=space=number=other=0;do{ c=getchar(); if(c>='a'&&c<='z'||c>='A'&&c<='Z') letter++; elseif(c>='0'&&c<='9') number++; elseif(c=='') space++; else other++;}while(c!='\n');printf("letter=%d,space=%d,number=%d,other=%d\n",letter,space,number,other);return0;}2、编译,無錯误、無警告後执行,成果如下:试验③:打印出如下图案:7行7列菱形1、输入#include<stdio.h>#definen3intmain(){inti,j;for(i=0;i<=n;i++){for(j=1;j<=n-i;j++)printf("");i=m;while(1){if(i%m==0&&i%n==0)break;i++;}printf("它們的最小公倍数是:%d\n",i);return0;}2、编译,無錯误、無警告後执行,成果如下:试验⑤:编写程序输出乘法表输入#include<stdio.h>main(){inti,j;for(i=1;i<=9;i++){ for(j=1;j<=i;j++)printf("%d*%d=%-3d",j,i,i*j);printf("\n");}system("pause");}编译,無錯误、無警告後运行,成果如下:for(j=1;j<=2*i+1;j++)printf("*");printf("\n");}for(i=n-1;i>=0;i--){for(j=1;j<=n-i;j++)printf("");for(j=1;j<=2*i+1;j++)printf("*");printf("\n");}}2、编译,無錯误、無警告後运行,成果如下:试验④:编程求1!+2!+3!+……+20!。1、输入#include<stdio.h>intmain(){ intn,m=1,sum=0; for(n=1;n<=20;n++) { m=n*m; sum=sum+m; } printf("1+2!+3!...+20!=%d\n",sum);}2、编译,無錯误、無警告後运行,成果如下:试验總結记录与信息學院《C程序设计》试验汇报(六)學号:姓名:班级:成绩:试验名称:数组指导教師:试验曰期:试验地點:试验软件(重要仪器设备):VisualC++6.0实验规定1.掌握一维数组和二维数组的定义、赋值和输入输出的措施;2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(尤其是排序算法)。实验過程与步骤试验①:编写程序,用scanf函数输入10個整数的数列,先将整数按照從大到小的次序進行排序,然後输入一种整数插入到数列中,使数列保持從大到小的次序。1、输入#include<stdio.h>main(){voidRank(intN,intn[]);inti,j,k;intn[11];for(i=0;i<10;i++)scanf("%d",&n[i]);Rank(10,n);scanf("%d",&k);if(k>n[9])n[10]=k;else{for(i=0;n[i]<=k;i++);for(j=9;j>=i;j--)n[j+1]=n[j];n[i]=k;}for(i=0;i<=10;i++)printf("%-4d",n[i]);printf("\n");}voidRank(intN,intn[]){inti,k,t;for(k=1;k<=N-1;k++)for(i=N-1;i>=k;i--)if(n[i-1]>n[i])试验②:有15個数寄存在一种数组中,输入一种数,规定用折半查找法找出该数是数组中第几种元素的值,假如该数不在数组中,则输出“無此数”,并且可以实現持续查找。15個数用赋初值的措施在程序中給出,要找的数用scanf函数输入。1、输入#include<math.h>main(){staticinti,j,m,a[15]={2,10,13,24,35,59,68,78,98,102,234,526,649,758,893};scanf("%d",&m);for(j=0;j<15;j++)printf("%4d",a[j]);printf("\n");i=7;while(fabs(i-7)<8){if(m<a[7]){if(a[i]-m==0){printf("itisat(%d)\n",i+1);break;}i--;}elseif(m>a[7]){if(a[i]-m==0){printf("itisat(%d)\n",i+1);break;}i++;}elseprintf("8\n");}if(fabs(i-7)-8==0)printf("無此数\n");}2、编译,無錯误、2警告後运行,运行成果如下:试验③:将如下二维数组中数按列的次序寄存到一种一维数组中。二维数组的内容是112233441122334411223344则一维数组中的内容是1111112222223333334444441、输入#include<stdio.h>main(){inta[3][4]={{11,22,33,44},{11,22,33,44},{11,22,33,44}};intb[12],i,j,m;{t=n[i];n[i]=n[i-1];n[i-1]=t;}for(i=0;i<=N-1;i++)printf("%-4d",n[i]);printf("\n");}2、编译,無錯误、無警告後运行,运行成果如下:试验④:将两個字符串连接起来,不要用strcat函数。1、输入#defineM50#defineN20main(){chara[M],b[N];inti,j;gets(a);gets(b);for(i=0;a[i]!='\0';i++);for(j=0;b[j]!='\0';j++){a[i]=b[j];i++;}a[i]='\0';puts(a);}2、编译,無錯误、無警告後运行,运行成果如下:试验⑤:從键盘输入5個字符串,找出最長的字符串和最大的字符串。1、输入#include"string.h"#defineN20main(){chara[5][N],max[N],m,n,max1;intb[5];inti,j;for(i=0;i<=4;i++)gets(a[i]);for(i=0;i<=4;i++)b[i]=strlen(a[i]);max1=b[0];m=0;for(i=1;i<=4;i++)if(b[i]>=max1){max1=b[i];m=i;}strcpy(max,a[0]);n=0;for(i=1;i<=4;i++)if(strcmp(a[i],max)>=0){strcpy(max,a[i]);n=i;}printf("\n");puts(a[m]);puts(a[n]);}2、编译,無錯误、無警告後运行,运行成果如下:m=0;for(j=0;j<=3;j++)for(i=0;i<=2;i++){b[m]=a[i][j];m++;}for(m=0;m<12;m++)printf("%d",b[m]);printf("\n");}2、编译,無錯误、無警告後运行,运行成果如下:试验總結记录与信息學院《C程序设计》试验汇报(七)學号:姓名:班级:成绩:试验名称:函数指导教師:张雄试验曰期:试验地點:试验软件(重要仪器设备):VisualC++6.0实验规定1.掌握定义函数的措施;2.掌握函数实参与形参的對应关系,以及“值传递”的方式;3.掌握函数的嵌套调用和递归调用的措施;4.掌握全局变量和局部变量,動态变量和静态变量的概念和使用措施。实验過程与步骤试验①:写一种判断素数的函数,在主函数输入一种整数,输出与否是素数的信息。1、输入#include<stdio.h>intis_prime(intm){ inti; if(m==1) return0; for(i=2;i<m;i++) { if(m%i==0) { return0; } } return1;}voidmain(){ intn,c; scanf("%d",&n); c=is_prime(n); if(c==1) printf("它是素数\n"); else printf("它不是素数\n");}2、编译,無錯误、無警告後运行,成果如下:试验③:已知二阶Fibonacci数列:0若n=0Fib(n)=1若n=1Fib(n-1)+Fib(n-2)其他状况定义递归函数求Fib(n)。1、输入#include<stdio.h>intfib(intn){ if(n==0) return0; elseif(n==1) return1; else { returnfib(n-1)+fib(n-2); }}voidmain(){ intn;scanf("%d",&n);printf("fib(%d)=%d\n",n,fib(n));}2、编译,無錯误、無警告後运行,成果如下:试验②:1、输入#include<stdio.h>voidmain(){intgy(int,int);intgb(int,int);intm,n;restart:scanf("%d%d",&m,&n);printf("最大公约数是%d\n",gy(m,n));printf("最小公倍数是%d\n",gb(m,n));gotorestart;}intgy(intx,inty){inta,b,c,d;if(x>=y){a=x,b=y;}else{a=y,b=x;}while(d!=0){c=a/b;d=a%b;a=b;b=d;}returna;}intgb(intx,inty){return(x*y)/gy(x,y);}2、编译,無錯误、無警告後运行,成果如下:试验④:编写函数,求1、输入#include<stdio.h>intfunc(intn){ if(n==0||n==1) { return1; } else { returnn*func(n-1); }}intmain(void){ intn; inti; intsum=0; printf("請输入一种正整数:"); scanf("%d",&n); for(i=1;i<=n;i++) { sum+=func(i); } printf("1!+...+%d!=%d\n",n,sum); return0;}2、编译,無錯误、無警告後运行,成果如下:试验總結记录与信息學院《C程序设计》试验汇报(八)學号:姓名:班级:成绩:试验名称:指针指导教師:试验曰期:试验地點:试验软件(重要仪器设备):VisualC++6.0实验规定1.掌握指针的概念,會定义和使用指针变量;2.學會使用数组的指针和指向数组的指针变量;3.學會使用字符串的指针和指向字符串的指针变量;4.學會使用指向函数的指针变量;5.理解指向指针的指针的概念及其使用措施。实验過程与步骤试验①:1.定义函数voidfun(intx[],int*max,int*min),找出数组x中的最大值和最小值,最大值和最小值通過形参指针max和min传回。输入#include<stdio.h>#defineN10{voidfun(int*a,intn)inti,j,k,big;i=0;big=a[0];for(i=0;i<N;i++){if(big<a[i]){big=a[i];j=i;}}k=a[0];a[0]=a[j];a[j]=k;j=1;bi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 膀胱镜检查试题及答案
- 新能源汽车高压安全与防护 1.1电学基本知识-教案
- 2026年中考数学真题完全解读(山东卷)
- 年度个人工作总结13篇
- 安全员工作总结2篇
- 2026关于农村的面试题及答案
- 2026国民党保安面试题及答案
- 业务合作协议变更通知(5篇范文)
- 小学主题班会课件:环保与和谐,勤俭与节约
- 建筑工程施工安全规范标准流程指南
- 政务服务办事员职业技能竞赛考试题库(浓缩500题)
- 婚姻家庭法律代理承诺保密
- 医院院外会诊申请单、医师外出会诊审核表、医师外出会诊回执
- JTS-165-6-2008滚装码头设计规范-PDF解密
- 2024年广东粤电阳江海上风电有限公司招聘笔试参考题库含答案解析
- 信用修复申请书
- 锦州市国企招聘考试真题及答案
- 二手房交易管理系统数据库概论课题设计
- 陕西省交通医院电子病历三级改造项目方案
- 企业安全生产资料样本
- GB/T 6109.5-2008漆包圆绕组线第5部分:180级聚酯亚胺漆包铜圆线
评论
0/150
提交评论