您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 上海工程技术大学《高级语言程序设计A》实验指导书-复习(20171207)
高级语言程序设计A–实验指导书–参考程序实验1顺序结构程序设计3.求两个数之和(静态输入和动态输入)。数据通过scanf()函数输入,注意变量前面的取地址符号。#includestdio.hintmain(){inta,b,s;printf(请您输入两个数:);scanf(%d,%d,&a,&b);//动态输入s=a+b;printf(这两个数的和是%d\n,s);return0;}实验2选择结构程序设计1.输入a、b、c三个整数,求出其中最大者,并连同三个源数据一起输出。#includestdio.hintmain(){inta,b,c,max;scanf(%d%d%d,&a,&b,&c);max=a;if(maxb)max=b;if(maxc)max=c;printf(%d,%d,%d\n%d\n,a,b,c,max);return0;}2.给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。要求:至少输入3个分数段的成绩并打印出对应的等级制成绩,并用switch语句完成。#includestdio.hintmain()2{intgrade;scanf(%d,&grade);if(grade=0&&grade=100){switch(grade/10){case10:case9:printf(A\n);break;case8:printf(B\n);break;case7:printf(C\n);break;case6:printf(D\n);break;default:printf(F\n);}}elseprintf(error\n);return0;}实验3循环结构程序设计1.计算当n为何值时,不等式sum=1+1/2+1/3+…+1/nlimit成立,输出n对应的sum(limit从键盘输入,要求用while语句)。intmain(){inti=1,limit;floatsum=0;printf(pleaseinputthevalueoflimit:\n);scanf(%d,&limit);while(sum=limit){sum+=1.0/i;i++;}printf(%d\t%-6.2f\n,i-1,sum);return0;}2.计算M=11+22+33+…+NN,直到N等于15为止,输出N和对应的M。(要求用for语句做)3#includestdio.hintmain(){intn,m=0;for(n=1;n=15;n++){if(n10)m+=n*11;elsem+=n*101;printf(%d---%d\n,n,m);}return0;}3.100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马一匹驮0.5担,计算大、中、小马匹数的各种组合并输出。#includestdio.hintmain(){intm,n,k;for(m=0;m=33;m++)for(n=0;n=50;n++)for(k=0;k=100;k++)if((m+n+k==100)&&(3*m+2*n+0.5*k==100))printf(%d,%d,%d\n,m,n,k);return0;}实验4数组程序设计1.设数列为1,3,5,7,9,11,13,15,17,19,动态输入在数组array中,然后顺序打印输出该数列,再逆序打印输出该数列。#includestdio.hintmain(){inta[10],i;for(i=0;i10;i++)4scanf(%d,&a[i]);for(i=0;i10;i++)printf(%5d,a[i]);printf(\n);for(i=9;i=0;i--)printf(%5d,a[i]);printf(\n);return0;}2.将3x3阶二维数组的关于主对角线对称的元素互换。二维数组的第1至3行元素分别为1、2、3、4、5、6、7、8、9。用矩阵形式分别输出互换前、后的数组元素值。intmain(){inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},b[3][3],i,j;for(i=0;i3;i++)for(j=0;j3;j++)b[i][j]=a[j][i];for(i=0;i3;i++){for(j=0;j3;j++)printf(%d\t,a[i][j]);printf(\n);}printf(\n);for(i=0;i3;i++){for(j=0;j3;j++)printf(%d\t,b[i][j]);printf(\n);}return0;}5实验5字符数组程序设计1.定义两个字符数组s1、s2,并用赋初值的方法把两个字符串”Computer”和”Language”分别存放到s1、s2中,不用库函数strcat(),把s2连接到s1的尾部,然后用%s格式输出连接后的字符串s1。intmain(){chars1[20]=Computer;chars2[]=Language;inti,h=0;for(i=0;s1[i]!='\0';i++)h++;for(i=0;s2[i]!='\0';i++)s1[h+i]=s2[i];printf(%s\n,s1);return0;}2.用赋初值的方法把字符串”Cisageneralpurpose,procedural,imperativecomputerprogramminglanguagedevelopedin1972byDennisRitchieattheBellTelephoneLaboratoriesforusewiththeUnixoperatingsystem.”存放到字符数组s中,编程统计其中的大写字母、小写字母、数字、空格、逗号的个数。#includestdio.hintmain(){chars[]=Cisageneralpurpose,procedural,imperative\computerprogramminglanguagedevelopedin1972\byDennisRitchieattheBellTelephone\LaboratoriesforusewiththeUnixoperatingsystem.;intnu=0,nl=0,nn=0,ns=0,nc=0;inti;for(i=0;s[i]!='\0';i++){if(s[i]='Z'&&s[i]='A')nu++;if(s[i]='z'&&s[i]='a')nl++;if(s[i]='9'&&s[i]='0')nn++;6if(s[i]=='')ns++;if(s[i]==',')nc++;}printf(%d\t%d\t%d\t%d\t%d\n,nu,nl,nn,ns,nc);return0;}实验6函数程序设计1.试从主函数输入10个数据到数组中,编写对偶数项求和的子函数,它将计算结果返回给主函数,由主函数输出。#includestdio.hintoqh(inta[],intx){inti,s;s=0;for(i=1;ix;i+=2)s=s+a[i];return(s);}voidmain(){inta[10];inti,s;printf(请您在数组内输入10个数:);for(i=0;i10;i++)scanf(%d,&a[i]);s=oqh(a,10);printf(这个数组的偶数项的和是:%d\n,s);}注意:oqh并无其他含义,是本人定义的一个函数名,偶数项求和的缩写。2.编写一个判断素数的程序,其中主函数用于完成输入一个整数并给出判断结果,单独编写一个函数用于判断其参数是否为素数,其返回值为1表示为素数,为0表示为非素数。#includestdio.h#includemath.hintmain()7{intisPrime(intn);intm;scanf(%d,&m);if(isPrime(m))printf(%disaprimenumber\n.,m);elseprintf(%disnotaprimenumber\n.,m);return0;}intisPrime(intn){inti;for(i=2;i=sqrt(n);i++)if(n%i==0)return0;return1;}实验7指针程序设计1.输入十个整数存入数组list,然后用指针法从后向前输出该数组中的整数。#includestdio.hintmain(){intlist[10];int*p;for(p=list;plist+10;p++)scanf(%d,p);for(p=list+9;p=list;p--)printf(%d\t,*p);printf(\n);return0;}2.编写一个函数,它能对一个字符串(“Iamastudent”)测出长度,要求函数的形参是一个指针变量,函数返回值是字符串的长度(不包含字符串的结束标志)。#includestdio.hintmain()8{intstrlength(char*p);char*s=Iamastudent;printf(thelengthis:%d\n,strlength(s));return0;}intstrlength(char*p){inti;for(i=0;*p!='\0';p++,i++);returni;}实验8结构体程序设计1.定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天。#includestdio.hintmain(){intn=0,b[12]={31,28,31,30,31,30,31,31,30,31,30,31},i;structdate{intyear;intmonth;intday;}s1;scanf(%d.%d.%d,&s1.year,&s1.month,&s1.day);if(s1.year%400==0||(s1.year%4==0&&s1.year%100!=0))b[1]=29;for(i=0;is1.month-1;i++)n+=b[i];n+=s1.day;printf(第%d天\n,n);return0;}2.有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,用赋初值的方法输入5个学生的数据到结构体数组中,输出每个学生3门课的平均成绩。#includestdio.h9structstudent{charnum[6];charname[8];intscore[3];floatavr;}stu[5]={{101,Zhou,93,89,87},{102,Yang,85,80,78},{103,Chen,77,70,83},{104,Qian,70,67,60},{105,Li,72,70,69}};voidmain(){inti,j,sum;for(i=0;i5;i++){sum=0;for(j=0;j3;j++)sum+=stu[i].score[j];stu[i].avr=sum/3.0;}printf(numbernamescore1score2score3average\n);for(i=0;i5;i++){printf(%3s%10s,stu[i].num,stu[i].name);for(j=0;j3;j++)printf(%7d,stu[i].score[j]);printf(%10.2f\n,stu[i].avr);}}10附:注意:*p++和*++p的区别1.#includestdio.h2.3.intmain(void)4.{5.intarr[]={1,2,3,4};6.int*p=arr;7.8.inta=*p++;//等价于a=*(p++);即a=*p;p=p+1;9.10.intb=*++p;//等价于b=*(++p);即p=p+1;b=*p;11.12.printf(a=
本文标题:上海工程技术大学《高级语言程序设计A》实验指导书-复习(20171207)
链接地址:https://www.777doc.com/doc-6487852 .html