《C语言程序设计》(江宝钏著)实验七答案
《C语言程序设计》课件 《C语言程序设计》参考答案

《C语言程序设计》教材参考答案包括各单元:一.随堂练习二.本章自测第1章一.随堂练习【随堂练习1-1】1.根据上述示例模仿编程,输入正方形的边长,计算其面积。
#include <stdio.h>void main( ){ int a,s; //数据准备,边长a,面积sprintf("请输入正方形的边长:");scanf("%d",&a); //数据输入s=a*a; //数据计算printf("该正方形的面积为:%d.\n",s);}【随堂练习1-2】1.下面哪些标识符属于合法的用户自定义标识符:Main、void、_num、my$、a*、N4、3m、a-2答:合法的用户自定义标识符是:Main、_num、N42.结合【例1.2】指出程序代码中所用到的标识符哪些是关键字,哪些是预定义标识符,哪些是用户自定义标识符。
答:关键字:void、int预定义标识符:include、main、printf、scanf用户自定义标识符:a、b、c3.分析【例1.2】中函数的结构,包括函数首部(函数返回值类型、函数名、形式参数)、函数体语句(说明语句、可执行语句)。
答:函数首部:void main( ),其中函数返回值类型为void、函数名为main、形式参数无;函数体语句:{}内的语句为函数体,其中:说明语句为int a,b,c;,其余为可执行语句。
【随堂练习1-3】1.在VC++6.0环境中完成【例1.2】程序开发过程。
(略)2.查阅【例1.2】所对应的工程文件夹,了解相关文件的含义。
工程文件夹中:.CPP:用C/C++语言编写的源代码文件。
.DSP:VC开发环境生成的工程文件,VC4及以前版本使用MAK文件来定义工程。
项目文件,文本格式。
.DSW:VC开发环境生成的WorkSpace文件,用来把多个工程组织到一个WorkSpace中。
《C语言程序设计》(江宝钏著)实验八答案

江宝钏实验八3.一般编程题1.用指针法统计10个数中正数、负数与零的个数,并分别求正数的总与,负数的总与。
#include <stdio、h>void main(){int a[10];int i,*p,sum1,sum2,c1,c2,c3;printf("输入10个整数:");for(i=0;i<10;i++)scanf("%d",&a[i]);c1=c2=c3=0;sum1=sum2=0;for(p=a;p<(a+10);p++){if(*p<0){ sum1+=*p;c1++;}if(*p==0){ c2++;}if(*p>0) {sum2+=*p;c3++;}}printf("正数,负数的与:%d %d\n",sum2,sum1);printf("正数、零、负数的个数:%d %d %d \n",c3,c2,c1);}4.较难编程题1.输入一行字符,开始用一个指针指向这行字符的开头,并依次向后移,分别统计出其中英文字母、空格、数字与其它字符的个数。
#include <stdio、h>#include <string、h>#define N 100void main(){char *p;char str[N];int c1,c2,c3,c4,i;printf("input a string:");gets(str);i=strlen(str);c1=c2=c3=c4=0;for(p=str;p<str+i;p++){if(*p>='a'&&*p<='z'||*p>='A'&&*p<='Z')c1++;if(*p==' ')c2++;if(*p>='0'&&*p<='9')c3++;elsec4++;}printf("字母个数:%d\n",c1); printf("空格个数:%d\n",c2); printf("数字个数:%d\n",c3); printf("其她字符个数:%d",c4); }。
《C语言程序设计》(江宝钏著)实验五答案培训资料

《C语言程序设计》(江宝钏著)实验五答案5.4 实验五函数与预处理一、实验目的与要求1. 掌握C语言函数的定义方法、函数的声明及函数的调用方法。
2. 理解函数实参与形参的对应关系以及“值传递”的方式。
3. 掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。
4. 掌握动态存储分配的方法。
5. 掌握宏定义和文件包含处理方法。
6. 实验4学时二、实验内容1.程序验证与改错题(1) 程序验证题①下面程序执行的结果是什么void swap(int x, int y){int temp;temp=x;x=y;y=temp;}void main(){int a,b;scanf(“%d%d”, &a,&b);if(a>b)swap(a, b);printf(“%d\t %d”, a,b);}思考:为什么a,b的值没有交换?答:修改后的函数为#include<stdio.h>void swap(int &x, int &y){int temp;temp=x;y=temp;}void main(){int a,b;scanf("%d%d",&a,&b);swap(a,b); //if语句被去掉//printf("%d\t %d\n", a,b);}因为调用函数中改变的是形参而非实参,加上&,其意义是改变实参的地址。
If语句中,只有当a>b时才交换a,b的值去掉后在任何情况下都交换a,b的值②调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。
请验证下面的程序是否符合题目要求。
#include”stdio.h”int fun(int n){int m, i;for (i=1; i<=n; i++){m+=i;}return m;}void main(){printf("m=%d\n", fun(10));}在上面程序的基础上,修改程序. 计算m=1-2+3-4+…+9-10。
《C语言程序开发》实验报告和参考答案

《C语言程序开发》实验报告和参考答案1实实验报告课程名称:C语言程序开发学生姓名:学生学号:专业班级:指导教师:实验日期:2目录实验一循环结构程序设计(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。
实验二数组及其应用(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
实验三函数及其应用(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
问第4个学生岁数,他说比第3个学生大2岁。
问第3个学生,又说比第2个学生大2岁。
问第2个学生,说比第1个学生大2岁。
最后问第1个学生,他说是10岁。
请问第5个学生多大。
(二)用选择法对数组中10个整数按由小到大排序,一维数组名作函数参数。
实验四指针及其应用(一)将若干字符串按字母顺序(由小到大)输出。
(二)有a个学生,每个学生有b门课程的成绩。
要求在用户输入学生序号以后,能输出该学生的全部成绩。
用指针函数来实现。
3实验一循环结构程序设计实验题目:(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。
实验目的1.掌握循环语句的执行过程及用法2.初步掌握循环程序设计的基本技巧3.掌握用while语句,do-while语句和for语句实现循环的方法4.掌握多重循环的使用(一)实验步骤1.题目分析2.源程序代码3.运行结果(二)实验步骤:1.题目分析源程序代码3.运行结果4实验二数组及其应用实验题目:(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
实验目的1.掌握一维数组的定义及其元素的引用方法2.掌握利用一维数组实现一些常用算法的基本技巧3.掌握二维数组的定义及其应用4.掌握字符数组和字符串函数的使用5.掌握有关二维数组的基本编程技巧(一)实验步骤:1.题目分析2.源程序代码:3.运行结果(二)实验步骤:1.题目分析2.源程序代码3.运行结果5实验三函数及其应用实验题目:(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
C语言程序设计实验实验指导书及答案

常熟理工学院电气与自动化工程学院《C语言程序设计》实验指导书实验一熟悉C程序运行环境班级学号姓名成绩一、实验目的1. 熟悉C语言Visual C++6.0调试环境。
2. 掌握C程序的编辑、调试及运行。
二、实验内容项目1. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int main(){printf(“Good morning!\n”);printf(“Hello,world!\n”);return 0;}运行结果(注意,按照屏幕输出格式写):项目2. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int main(){int a , b , sum; /*定义变量*/a=23; b=56; /*为变量赋值*/sum=a+b; /*计算两个变量的和*/printf(“sum is %d\n”,sum); /*输出计算结果*/return 0;}运行结果:2项目3. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int max(int,int);int main(){int a , b , c; /*定义变量*/a=23; b=56; /*为变量赋值*/c=max(a,b); /*调用max函数,将得到的值赋给c*/ printf(“max is %d\n”,c); /*输出c的值*/return 0;}int max(int x,int y) /*定义max函数,函数值为整型*/ {int z; /*定义变量*/if(x>y)z=x;elsez=y;return(z); /*将z的值返回*/}运行结果:三、提高部分1.试想,如果求10个数中的最大者,则程序该如何编写。
程序代码运行结果:实验二数据及其运算班级学号姓名成绩一、实验目的1. 掌握C数据类型的概念、熟悉整型、字符型和实型基本类型的常量的用法;学会三种基本类型变量的定义、赋值和使用方法。
《C语言程序设计》江宝钏著实验六详解

6.4 实验六数组一、实验目的与要求1.掌握一维数组的定义、赋值和输入输出的方法。
2.理解一维数组的存储方法及下标的表示方法。
3.掌握与数组有关的算法(特别是排序算法)。
4.掌握二维数组的定义、赋值和输入输出的方法。
5.理解二维数组的存储方法及下标的表示方法。
6.实验4学时。
(1 )程序验证题①给定一个整型数组a,要求求出其中小于0的元素的个数。
请验证下面的程序是否符合题目要求。
#define N 10void mai n(){int a[N]={11,2,4,-1,5,-3,-66,0,10,-5};int i; /*变量i用于for循环*/int count=0; /*变量count用于技术,初始化为0*/ for (i=0;i<N;i++) if(a[i]<0)count++; /* 如果元素a[i]<0 ,count 计数+1*/ printf("%d\n",count);}② 给定一个整型二维数组a(3,3) ,要求求出对角线元素的和。
请验证下面的程序是否符合题目要求。
#include <stdio.h>#define N 3void main(){int a[N][N]={{1,2,3},{4,5,6},{7,8,9}};int i,j; /* 变量i,j 用于for 循环*/int sum=0; /* 变量sum 用于求和,初始化为0*/ for (i=0;i<N;i++)for( j=0;j<N;j++)if (i==j)sum+=a[i][j]; /* 如果是对角线元素,sum+a[i][ j]*/printf("%d\n",sum);return 0;}注1 :在程序验证题①的基础上,修改程序,求出数组a中大于a[0]的元素之和。
答;#include<stdio.h>#define N 10void main(){int a[N]={11,2,4,-1,5,-3,-66,0,10,-5};int i,sum=0;int count=0;for (i=0;i<N;i++){if(a[i]<0)count++;if(a[i]>a[0])sum+=a[i];}printf(" 小于0 元素的个数为:%d\n",count);printf(" 大于a[0] 的元素之和为:%d\n",sum);}注2 :对上述程序②进行优化,消除内循环,实现同样的效果。
C语言程序设计教程第七章课后习题参考答案.doc

}
if(x>0)//不是对称矩阵
return 0;
return 1;
}
P198 6矩阵求和
#in clude<stdio.h>
#define M 3
#define N 3
void input(int a[][N],int m,int n);
void sum(int a[][N],int b[][N],int m, int n);
{
printf( ”%4d”,a[i]);
}
bubble_sort(a,N);
printf(”\n”);
} void bubble_sort(int a[],int n)
int i,j,tmp;
for(i=0;i<n-l;i++)
{
for(j=0;j<n-i-l;j++)
{
if(a[j]>a[j+l])
int main()
{
int a[N],i;
double x=0,y=0/z=0J=0,m=0,n=0;
for(i=0;i<N;i++)
{ a[i]=rand()%6+l;
if(a[i]==l)
x++;
if(a[i]==2)
y++;
if(a[i]==3)
z++;
if(a[i]==4)
I++;
if(a[i]==5)
}
}
198 4数组逆序存放(2)
#include<stdio.h>
void reverse(int a[],int n);
《C程序设计》实验报告答案

答案基本订正过错处,程序设计题部分附上源代码,基本无误,但由于时间紧迫,可能也会有小问题,仅供参考。
以/* */表示程序注释。
第一章C语言概述参考答案一、选择题:1-7 ADCBBDD一、选择题:1-5 DBCBD二、算法设计(略)第三章一、选择题1-5 DCCDB 6-10 BACAA21-25 ADABA选择题24题题目应为:(a==b++二、填空题C程序设计-顺序程序设计参考答案D答案改为65534第五章选择结构程序设计参考答案一、选择题1-5 BCDCA 6-10 BCDCB 11-15 DABDD二、填空题1. switch或多分支开关控制2.fabs(x-2)<1e-63. 14. 45995. 10 20 0三、写出程序运行的结果Array 1.97,b2.a=1,b=33.该程序书上有误,正确的是:main(){ char c;while((c=getchar())!=‟\n‟){ switch(c-…1‟){case 0:case 1:putchar(c+2);case 3:putchar(c+4);default}}printf(“\n”);}结果:645341由于程序不同,该题可以有两个答案四、程序设计1、下列程序实现从键盘接收3个数,输出最大数和最小数#include <stdio.h>main(){ int a,b,c,max,min;scanf(“%d,%d,%d”,&a,&b,&c); /*键盘输入3个数a,b,c*/max=min=a; /*假设第一个数a是最大数,也是最小数/if(b>a) max=b; /*分别用a和b,c进行两次比较*/else min=b;if(c>max) max=c;if(c<min) min=c;printf(“\nmax=%d,min=%d”,max, min);}1.输入一百分制的成绩,输出他的等级,90以上“A”等,80-89为“B”等,70-79为“C”等,60-69为“D”等,60以下为“E”等。
C语言程序设计答案——清华大学出版社(第二版)

厦门大学本科生公共课 《C 程序设计基础》 第二版教材习题答案
第七章 编译预处理
} 3、 定义一个带有 3 个参数的宏 MAX,求 3 个参数中的最大值。 #include <stdio.h> #define MAX(a,b,c) a > b ? (a > c ? a : c) : (b > c ? b : c) void main() { float a, b, c; printf("输入三个数:"); scanf("%f%f%f", &a, &b, &c); printf("最大值为%f", MAX(a,b,c)); } 4、 给年份 YEAR 定义一个宏,判定该年份是否是闰年。 #include <stdio.h> #define YEAR(a) (a % 4 == 0 && a % 100 != 0) || (a % 400 == 0) void main() { int year; printf("输入年份:"); scanf("%d", &year); if(YEAR(year)) { printf("%d 是闰年\n", year); } else { printf("%d 不是闰年\n", year); } } ================此后无内容================
c语言程序设计答案清华大学出版社第二版
厦门大学本科生公共课 《C 程序设计基础》 第二版教材习题答案
第七章 编译预处理
《C语言程序设计》(江宝钏著)实验七答案

7、4 实验七字符与字符串处理一、实验目得与要求1.掌握C语言字符型数据得概念,理解字符型与整型数据之间得关系。
2.掌握字符得输入与输出.3.掌握转义字符常量、字符串常量得使用.4.掌握字符、字符串与字符数组得输入与输出。
5.掌握字符串函数得使用\字符串数组得使用。
6.实验课时2学时二、实验内容1.程序改错题①调试下列程序,使之具有如下功能:任意输入两个字符串(如:"ningbo"与”china”),并存放在a,b两个数组中。
然后把较短得字符串放在a数组,较长得字符串放在b数组。
并输出.程序中得strlen就是库函数,功能就是求字符串得长度,它得原型保存在头文件"string、h"中.调试时注意库函数得调用方法,不同得字符串输入方法,通过错误提示发现程序中得错误。
提示发现程序中得错误。
#include <stdio、h>#include<string、h>void main(){char a[10],b[10],ch;int c,d,k;scanf("%s",&a);scanf("%s",&b);/*error*/printf(”a=%s,b=%s\n”,a,b);c=strlen(a);d=strlen(b);if(c>d){for(k=0;k<d;k++)/*error*/{ch=a[k];a[k]=b[k];b[k]=ch;}a[k]=’\0'; /* error*/}printf(”a=%s\n",a);printf(”b=%s\n",b);}答:#include〈stdio、h>#include<string、h>void main(){ﻩﻩchara[10],b[10],ch;int c,d,k;scanf("%s”,&a);scanf(”%s",&b);ﻩprintf("a=%s,b=%s\n",a,b);c=strlen(a);d=strlen(b);if(c>d){ﻩﻩfor(k=0;k〈c;k++)ﻩ{ﻩﻩﻩch=a[k];ﻩa[k]=b[k];ﻩb[k]=ch;ﻩ}ﻩa[k]='\0';ﻩb[k]='\0’;ﻩ}ﻩprintf(”a=%s\n",a);printf("b=%s\n",b);}②下列给定程序中,函数fun得功能就是:依次取出字符串中所有数字字符,形成新得字符串,并取代原字符串.请改正函数fun中得错误,使它能得出正确得结果。
C语言程序设计 (江宝钏 著) 清华大学出版社 习题7答案

习题7 答案一、程序阅读题1.D2.D3.B4.1,0,0,15.a1e1二、程序填空题1.这个题目不合适,不考虑了2.C A A B3.C D C4.A B三、编程题1.#include<stdio.h>#define NUM 5void main(){ int a[NUM],i,n;float sum=0,aver;printf("Enter Student Scores\n");for(i=0;i<NUM;i++){scanf("%d",&a[i]);sum=sum+a[i]; }aver=sum/NUM;n=0;printf("高于平均分的成绩:");for(i=0;i<NUM;i++)if(a[i]>aver){printf(" %d",a[i]);n++;}putchar('\n');printf("高于平均分数%f 的人数是:%d\n",aver,n); }2.#include<stdio.h>#define M 4#define N 3void main(){ int i,j,kmax,kmin,scores[M][N];int sum[M],max,min;for(i=0;i<M;i++)for(j=0;j<N;j++)scanf("%d",&scores[i][j]);for(i=0;i<M;i++){sum[i]=0;for(j=1;j<N;j++)sum[i]=sum[i]+scores[i][j];}max=min=sum[0];kmax=kmin=0;for(i=0;i<M;i++){if(sum[i]>max) {max=sum[i];kmax=scores[i][0];}if(sum[i]<min) {min=sum[i];kmin=scores[i][0];}}printf("总分最高的学号=%d ,总分=%d\n",kmax,max); printf("总分最低的学号=%d ,总分=%d\n",kmin,min);}3.#include <stdio.h>#include <stdlib.h>#define M 5#define N 100void main( ){int a[M][M],sumr[M]={0},sumc[M]={0},sumd1=0,sumd2=0; int i,j;for(i=0;i<M;i++){for (j=0; j< M; j++){a[i][j]=rand()/N;printf("%15d",a[i][j]);sumr[i]+=a[i][j];sumc[j]+=a[i][j];}printf("\n");;sumd1+=a[i][i];sumd2+=a[i][M-i-1];}printf("\n");for(i=0; i<M; i++){printf("sumrow[%d]=%d",i,sumr[i]);printf("sumcol[%d]=%d\n",i,sumc[i]);}printf("sumdia1=%d sumdia2=%d\n",sumd1,sumd2);}4.#include <stdio.h>#include <stdlib.h>#define M 3void findmax(int a[][M],int ln[]) ;void outdata (int a[][M], int ln[]);void main( ){ int s[M][M]={{22,33,34},{90,91,66 },{30,1,56, }};int lnm[M]; /*存放每列最大值所在的行号*/findmax(s,lnm);outdata(s,lnm);}void findmax(int a[][M],int ln[]){ int i,j,t;for (i=0;i<M;i++){ t=0;for(j=1;j<M;j++)if(a[j][i]>a[t][i]) t=j;ln[i]=t;}}void outdata (int a[][M], int ln[]){ int i,j;for(i=0;i<M;i++){for(j=0;j<M;j++)printf("%8d",a[i][j]);printf("\n");}printf("\n max&line number\n");for(i=0;i<M;i++)printf("%3d: %2d\n",a[ln[i]][i],ln[i]);printf("\n");}5.参照例7-14(2)6.#define N 10#define M 10void main( ){ int i, j, k, m, n, flag1, flag2, a[N][M], max, maxj; printf(“\n 输入行数n:”);scanf(“%d”, &n); printf(“\n 输入列数m:”);scanf(“%d”, &m);for (i =0; i <n; i ++){ printf(“第%d 行?\n”, i);for(j=0;j<m;j++)scanf(“%d”,&a[i][j]);}for(i =0; i <n; i ++){ for(j=0;j<m;j++)printf(“%5d”,a[i][j]);printf(“\n”);}flag2=0;for(i =0; i <n; i ++){ max=a[i][0];for(j=0;j<m;j++)if(a[i][j]>max){ max=a[i][j];maxj=j;}for(k=0,flag1=1;k<n&&flag1;k++)if(max>a[k][maxj]) flag1=0;if(flag1){ printf(“\n 第%d 行,第%d 列的%d 是鞍点\n”, i,maxj,max); flag2=1;}}if(!flag2) printf(“\n 矩阵中无鞍点!\n”);7.#include <stdio.h>#define M 5#define N 3void main(){ int i,j,t;int a[M]={4,5,6,7,8 };for(j=1;j<=N;j++){t=a[M-1];for(i=M-1;i>=1;i--)a[i]=a[i-1];a[0]=t;}for(i=0;i<M;i++)printf(" %d",a[i]);printf("\n");}8.#include<stdio.h>#include<stdlib.h>#define SIZE 100void arrsort(int [],int );void main(){ int a[SIZE],b[SIZE];int i,j,t,n=0;for(i=0;i<SIZE;i++){t=rand()%100;if(t>=10){ a[i]=t;if(t%2==0) {b[n]=a[i]; n++ ;}}}j=0;for(i=0;i<n;i++){ printf(" %d",b[i]);j++;if(j%10==0) printf("\n");}putchar('\n');arrsort(b,n);}void arrsort(int b[],int n){ int i,j,p,t,k=0;for(j=0;j<n-1;j++){ p=j;for(i=j+1;i<n;i++)if(b[p]<b[i]) p=i;if(p!=j){t=b[j];b[j]=b[p];b[p]=t;}}printf("after sorted:\n");for(i=0;i<n;i++){ printf(" %d",b[i]);k++;if(k%10==0) printf("\n");}printf("\n");}9.#include <string>int ishuiwen(char s[]){ int i,j,k;for(i=0;j=(strlen(s)-1);i<j;i++,j--) if (s[i]==s[j]) k=1;else{ k=0; break;}return k;}10.#include<string.h>#include<stdio.h>void main(){ int i=0,c[52]={0},m=0;char str[80];printf("Input a string:\n");gets(str);while(str[i]!='\0'){if(str[i]>='A'&&str[i]<='Z') c[str[i]-'A']++; if(str[i]>='a'&&str[i]<='z') c[str[i]-'a'+26]++; i++;}for(i=0;i<26;i++)//if(c[i]){ if (m%5==0) putchar('\n');m++;printf("%c : %-d",i+'A',c[i]);}for(i=0;i<26;i++)//if(c[i+26]){ if (m%5==0) putchar('\n');m++;printf("%c : %-d",i+'a',c[i+26]);}}。
【程序设计】《C语言程序设计》(江宝钏著)实验二答案【精品资料】

2.5 实验二编写几个简单的C程序一、实验目的与要求1.掌握C语言基本数据类型的概念,理解数据类型与运算的关系。
2.掌握简单变量的定义,算术表达式和赋值表达式的使用。
3.掌握基本输出语句的使用。
4.进一步熟悉C程序的编辑、编译、连接和运行的过程。
5.掌握简单C程序查错方法,编写几个简单程序。
6.实验4学时二、实验内容1.程序验证或填空(1)编译和运行下面程序,查看执行的结果:#include<stdio.h>int main(void){int si=-1;float f=5;double df=3;printf("si = %d, f = %f, df = %lf\n", si,f,df);return 0;}若把输出语句中的格式控制中的格式说明符的顺序改变一下,会有什么结果?再把%lf修改为%f,运行会有什么结果?Si=-1,f=5.00000,df=3.000000当顺序变为printf("si = %f, f = %lf, f = %d\n", si,f,df);时结果为si=-0.000000 f=0.000000 df=1074266112当把%lf修改为%f时即 printf("si = %f, f = %f, f = %d\n", si,f,df);结果为si=-0.000000 f=0.000000 df=1074266112(2)分析程序,并上机运行验证运行结果#include “stdio.h”void main( ){ printf(“\t*\n”);printf(“\t\b* * *\n”);printf(“\t\b\b * * * * *\n”);}Tab * 换行Tab 取消tab * * * 换行Tab 取消tab 退格 * * * * * 换行(3) 运行程序,并分析结果。
#include “stdio.h”void main( ){ int a=10,x=5,y=6;a+=a*=6;x=y++;y=++x;a=x+++y;printf(“%d,%d,%d\n”,a,x,y);}14,8,7 以下绿色部分为对结果的分析#include “stdio.h”void main( ){ int a=10,x=5,y=6;a+=a*=6; 此步对结果无影响\\x=y++; \\x=y y=y+1 此时x=6,y=7\\y=++x; \\x=x+1 y=x 此时 x=7 y=7\\a=x+++y; \\a=x+y x=x+1 此时 x=8 y=7 a=14\\ printf(“%d,%d,%d\n”,a,x,y);}(4)不用第3个变量,实现将二个数进行对调,请填空。
c程序设计教程与实验课后实验答案

c程序设计教程与实验课后实验答案【篇一:c程序设计教程与实验__吉顺如__实验一到七】> 一、实验目的1.掌握在visual c++6.0环境下c程序的建立、编辑、编译和执行过程。
2.掌握c程序的最基本框架结构,完成简单程序的编制与运行和调试。
3.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。
二、实验内容1.从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。
输入该c程序,编译并运行之,记下屏幕的输出结果,以文件名sy1_1.c保存。
#include stdio.h main() {int a,b,sum; /*定义整型变量a、b、sum */ printf(please input a,b \n); /*输出提示信息*/(1计算x*y的值并将结果输出。
试纠正程序中存在的错误,以实现其功能。
程序以文件名sy1_2.c保存。
#include stdio.hmainmain(){ int x=2;y=3;a int x=2,y=3,a; a=x*ya=x*y;print (a=%d,a);printf (a=%d,a); printf(\n);}(2)下程序的功能为:求两数中的较大数据并输出。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy1_3.c保存。
#include stdio.h1viod main()voidmain() {int a ,b , max;scanf(“%d,%d”,a,b);scanf(“%d,%d”,a,b); max=a; max=a;if (maxb) max=b; if (maxb) max=b; printf(“max=%d”,ma x);printf(“max=%d”,max); }3.程序填空题(1)从键盘输入两个整数,输出这两个整数的和。
根据注释信息填写完整程序,以实现其功能。
以文件名sy1_4.c保存。
#includestdio.h main() {/* 定义整型变量x,y,total*/ printf(please input x,y !);/*输出提示信息 *//*由键盘输入两个数分别赋予x和y*/ total=x+y;/*赋值语句 */printf(%d + %d=%d\n,x,y,total);/* 输出两个整数的和 */ }(2)从键盘输入两个整数,输出这两个整数的差。
C语言程序设计实验指导书参考答案_第二版.docx

NONO
YESYES
YESYES
NONO
YESYES
[提示]整除即除得余数为0参考程序:
#include "stdio.h”
[第二组自测数据]
[键盘输入]
98 /
参考程序:
#include”stdio.h”
main()
{int n;
scanff%护,&n);
if(n<O)printfif,,negative\nn); else printf(npositive\nn);
的
..3
二、实验内
容
..3
实验5循环结构程序设计
(―)8
一、实验目
的
..8
二、实验内
容
..8
实验6循环结构程序设计
一、实验目
上机实验
实验
初孕实验目的
(1)了解所用的计算机系统的基本操作方法,学会独立 使用该系统。
(2)7解在该系统上如何编辑、编译、连接和运行一个C程序。
(3)通过运行简单的C程序,初步了解C程序的特点。
a+B=5/ApPLe /[正确输出][正确输出]a+b=5apple
[提示]下面代码实现由键盘读入一个字符,并按题意处理后输出char a;
a=getchar();
if(a>=A && a<='Z‘)a=a+32;
putchar(a);
现在,题目要求处理5个字符,怎么做呢?请自 己思考……
参考程序:
if(n%2=0)printf(neven\nn); else printf(nodd\nn);
[题目1023:简单计算器] 下而程序是实现一个简单的运算器(保留两位小数点),如果由键盘输入
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.4 实验七字符与字符串处理一、实验目的与要求1.掌握C语言字符型数据的概念,理解字符型与整型数据之间的关系。
2.掌握字符的输入与输出。
3.掌握转义字符常量、字符串常量的使用。
4.掌握字符、字符串与字符数组的输入与输出。
5.掌握字符串函数的使用\字符串数组的使用。
6.实验课时2学时二、实验内容1.程序改错题①调试下列程序,使之具有如下功能:任意输入两个字符串(如:"ningbo"和"china"),并存放在a,b两个数组中。
然后把较短的字符串放在a数组,较长的字符串放在b数组。
并输出。
程序中的strlen是库函数,功能是求字符串的长度,它的原型保存在头文件"string.h"中。
调试时注意库函数的调用方法,不同的字符串输入方法,通过错误提示发现程序中的错误。
提示发现程序中的错误。
#include <stdio.h>#include<string.h>void main(){char a[10],b[10],ch;int c,d,k;scanf("%s",&a);scanf("%s",&b); /* error */printf("a=%s,b=%s\n",a,b);c=strlen(a);d=strlen(b);if(c>d){for(k=0;k<d;k++) /* error */{ch=a[k];a[k]=b[k];b[k]=ch;}a[k]='\0'; /* error */}printf("a=%s\n",a);printf("b=%s\n",b);}答:#include <stdio.h>#include<string.h>void main(){char a[10],b[10],ch;int c,d,k;scanf("%s",&a);scanf("%s",&b);printf("a=%s,b=%s\n",a,b);c=strlen(a);d=strlen(b);if(c>d){for(k=0;k<c;k++){ch=a[k];a[k]=b[k];b[k]=ch;}a[k]='\0';b[k]='\0';}printf("a=%s\n",a);printf("b=%s\n",b);}②下列给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。
请改正函数fun中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>void fun(char *s){int i,j;for(i=0;j=0;s[j]!='\0';i++) /* error */if(s[i]>='0' && s[i]<='9')s[j++]=s[i];s[j]=”\0”; /* error */}void main(){char item[80];printf("\nEnter a string :");gets(item);printf("\n\nThe string is : %s\n",item);fun(item);printf("\n\nThe string of changing is : %s\n",item);}答:#include <stdio.h>void fun(char *s){int i,j;for(i=0,j=0;s[i]!='\0';i++) //此句第一个分号改为逗号if(s[i]>='0'&&s[i]<='9'){s[j]=s[i];j++;}s[j]='\0'; //引号错误}void main(){char item[80];printf("\nEnter a string :");gets(item);printf("\n\nThe string is : %s\n",item);fun(item);printf("\n\nThe string of changing is : %s\n",item);}2.一般编程题编程题1请编一个函数fun(char*s),该函数的功能是把字符串中的内容逆置。
例如:字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。
#include <string.h>#include <stdio.h>#define N 81void fun ( char s[]){/*请填写完整*/}void main(){ char a[N];printf ( "Enter a string : ");gets ( a );printf ( "The original string is: " );puts( a );fun( a );printf("\n");printf ( "The string after modified : ");puts (a);}答:#include <string.h>#include <stdio.h>#define N 81void fun ( char s[ ]){int l,i,t;l=strlen(s);for(i=0;i<l/2;i++){t=s[i];s[i]=s[l-i-1];s[l-i-1]=t;}}void main(){ char a[N];printf ( "请输入一串字符:");gets ( a );printf("\n");printf ( "未变换前:");puts( a );fun( a );printf("\n");printf ( "变换后:");puts (a);printf("\n");}编程题2请编写输入以下图案(1)、(2)的程序,图案的行数由输入的值确定。
(1) (2)答:#include<stdio.h>void main(){int x,i,j,a='A',b;printf("输入行数:\n");scanf("%d",&x);for(i=0;i<x;i++){for(j=0;j<x+i;j++){b=a+i;if(j<x-i-1)printf(" ");elseprintf("%c",b);}printf("\n");}}3.较难编程题编程题1编写程序:程序功能是从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,例如,若输入edcba,则应输出abcde。
#include<stdio.h>#include<string.h>void main(){int i,j;char string[100], c;printf("Please input a string:");gets(string);/*请填写完整*/printf("result:%s\n", string);}答:#include<stdio.h>#include<string.h>void main(){int i,j,len;char string[100],c;printf("Please input a string:");gets(string);len=strlen(string);for(i=0;i<len;i++){for(j=0;j<len-i-1;j++){if(string[j]>string[j+1]){c=string[j];string[j]=string[j+1];string[j+1]=c;}}}printf("result:%s\n", string);}编程题2编写程序:程序功能是统计子串substr在母串str中出现的次数。
要求编写并调用函数fun的功能是:从str所指字符串中,找出substr所指子串的个数作为函数值返回。
例如,当str所指字符串中的内容为abcdabfab,substr所指字符串的内容为ab,则函数返回整数3。
#include <stdio.h>count(char str[],char substr[]){/*请填写完整*/}void main(){char str[80],substr[80];int n;gets(str);gets(substr);printf("%d\n",count(str,substr)); }答:#include <stdio.h>#include<string.h>count(char str[ ],char substr[ ]) {int i,j,k,len1,len2,count=0;len1=strlen(str);len2=strlen(substr);for(i=0;i<len1;i++){if(str[i]=substr[0]){k=0;for(j=0;j<len2;j++){if(str[i+j]==substr[j])k++;elsebreak;}if(k==len2)count++;}}return count;}void main(){char str[80],substr[80];int n;gets(str);gets(substr);printf("%d\n",count(str,substr)); }。