沈阳建筑大学C语言知识学习深刻复习资料.docx
- 文档编号:4147301
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:22
- 大小:18.18KB
沈阳建筑大学C语言知识学习深刻复习资料.docx
《沈阳建筑大学C语言知识学习深刻复习资料.docx》由会员分享,可在线阅读,更多相关《沈阳建筑大学C语言知识学习深刻复习资料.docx(22页珍藏版)》请在冰点文库上搜索。
沈阳建筑大学C语言知识学习深刻复习资料
沈阳建筑大学C语言复习资料
注:
此资料所涉及内容理解透彻即可轻松得到80分
教材复习内容:
要点
1常量与变量,标识符命名
2输入输出格式控制
3程序控制结构(条件表达式,分支,循环)
4流程转移控制
5函数定义与使用,变量的作用域和存储类型
6二维数组,指针数组,字符数组(字符串)
7指针数组,函数参数,数组参数
8结构体定义与使用
9函数、指针、结构体综合
10文件操作
需要看的题
例题
4.7
7.2
课后习题:
4.10
4.19
4.24
5.4
5.6
5.7
6.3
(2)
6.5
6.11
7.6
7.8
4.10
(1)
#include
main()
{
inti,sum=0;
for(i=1;i<=101;i=i+2)
{
sum=sum+i;
}
printf("sum=%d\n",sum);
}
(2)
#include
main()
{
inti=1,sum=0;
while(i<=101)
{
sum=sum+i;
i=i+2;
}
printf("sum=%d\n",sum);
}
4.19
#include
#include
main()
{
inti1,i2,i3,i4,k,n;
printf("Inputdatais:
");
scanf("%d",&n);
k=fabs(n);/*取绝对值*/
i1=k/1000;/*分离出千位*/
i2=(k-i1*1000)/100;/*分离出百位*/
i3=(k-i1*1000-i2*100)/10;/*分离出十位*/
i4=k%10;/*分离出个位*/
printf("Thesumofthetotalbitis%d\n",i1+i2+i3+i4);
}
4.24
#include
main()
{
intx,y,z;
for(x=0;x<=20;x++)
{
for(y=0;y<=33;y++)
{
z=100-x-y;
if(5*x+3*y+z/3.0==100)
{
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
}
5.4
(1)
#include
main()
{
intn,ret;
printf("Inputn:
");
scanf("%d",&n);
ret=IsPrimeNumber(n);
if(ret!
=0)
{
printf("%disaprimenumber\n",n);
}
else
{
printf("%disnotaprimenumber\n",n);
}
}
/*
函数功能:
判断参数是否是素数
函数入口参数:
number为整型数,要求为正整数
函数返回值:
非0值表示是素数,否则不是素数
*/
intIsPrimeNumber(intnumber)
{
inti;
if(number<=1)/*负数、0和1都不是素数*/
return0;
for(i=2;i<=sqrt(number);i++)
{
if((number%i)==0)/*被整除,不是素数*/
return0;
}
return1;
}
(2)
#include
main()
{
intn,ret;
printf("Inputn:
");
scanf("%d",&n);
ret=IsPrimeNumber(n);
if(ret!
=0)
{
printf("%disaprimenumber\n",n);
}
else
{
printf("%disnotaprimenumber\n",n);
}
}
/*
函数功能:
判断参数是否是素数
函数入口参数:
number为整型数,要求为正整数
函数返回值:
非0值表示是素数,否则不是素数
*/
intIsPrimeNumber(intnumber)
{
inti,flag=1;/*标志变量置为真,假设是素数*/
if(number<=1)/*负数、0和1都不是素数*/
flag=0;
for(i=2;i<=sqrt(number);i++)
{
if((number%i)==0)/*被整除,不是素数*/
flag=0;
}
returnflag;
}
5.6
#include
intMinCommonMultiple(inta,intb);
main()
{
inta,b,x;
printf("Inputa,b:
");
scanf("%d,%d",&a,&b);
x=MinCommonMultiple(a,b);
printf("MinCommonMultiple=%d\n",x);
}
/*
函数功能:
计算两个正整数的最小公倍数
函数入口参数:
两个整型数
函数返回值:
最小公倍数
*/
intMinCommonMultiple(inta,intb)
{
inti;
for(i=1;i
{
if((i*a)%b==0)
returni*a;
}
returnb*a;
}
5.7
#include
intMaxCommonFactor(inta,intb);
main()
{
inta,b,x;
printf("Inputa,b:
");
scanf("%d,%d",&a,&b);
x=MaxCommonFactor(a,b);
printf("MaxCommonFactor=%d\n",x);
}
/*
函数功能:
计算两个正整数的最大公约数
函数入口参数:
两个整型数
函数返回值:
最大公约数
*/
intMaxCommonFactor(inta,intb)
{
intr;
do{
r=a%b;
a=b;
b=r;
}while(r!
=0);
returna;
}
6.3
(2)
(2)
#include
main()
{
inta[10],n,max,min,maxPos,minPos;
for(n=0;n<10;n++)
{
scanf("%d",&a[n]);
}
max=min=a[0];
maxPos=minPos=0;
for(n=0;n<10;n++)
{
if(a[n]>max)
{
max=a[n];
maxPos=n;
}
elseif(a[n] { min=a[n]; minPos=n; } } printf("max=%d,pos=%d\n",max,maxPos); printf("min=%d,pos=%d\n",min,minPos); } 6.5 #include #defineARR_SIZE10 /* 函数功能: 找出n个数中的最大数与最小数并将其位置对换 函数参数: 整型数组a,存放待处理数据 整型变量n,为数据个数 返回值: 无 */ voidMaxMinExchang(inta[],intn) { intmaxValue=a[0],minValue=a[0],maxPos=0,minPos=0; inti,temp; for(i=1;i { if(a[i]>maxValue) { maxValue=a[i]; maxPos=i; } if(a[i] { minValue=a[i]; minPos=i; } } temp=a[maxPos]; a[maxPos]=a[minPos]; a[minPos]=temp; } main() { inta[ARR_SIZE],i,n; printf("Inputn(n<=10): "); scanf("%d",&n); printf("Input%dNumbers: \n",n); for(i=0;i { scanf("%d",&a[i]); } MaxMinExchang(a,n); printf("AfterMaxMinExchange: \n"); for(i=0;i { printf("%4d",a[i]); } printf("\n"); } 6.11 #include #include #defineARR_SIZE80 main() { charstr[ARR_SIZE]; intlen,i,letter=0,digit=0,space=0,others=0; printf("Pleaseinputastring: "); gets(str); for(i=0;str[i]! ='\0';i++) { if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z') letter++;/*统计英文字符*/ elseif(str[i]>='0'&&str[i]<='9') digit++;/*统计数字字符*/ elseif(str[i]=='') space++;/*统计空格*/ else others++;/*统计其他字符的个数*/ } printf("Englishcharacter: %d\n",letter); printf("digitcharacter: %d\n",digit); printf("space: %d\n",space); printf("othercharacter: %d\n",others); } 7.6 (1) #include intFindMax(intnum[],intn,int*pMaxPos); intFindMin(intnum[],intn,int*pMinPos); main() { intnum[10],maxValue,maxPos,minValue,minPos,i; printf("Input10numbers: \n"); for(i=0;i<10;i++) { scanf("%d",&num[i]);/*输入10个数*/ } maxValue=FindMax(num,10,&maxPos);/*找最大值及其所在下标位置*/ minValue=FindMin(num,10,&minPos);/*找最小值及其所在下标位置*/ printf("Max=%d,Position=%d,Min=%d,Position=%d\n", maxValue,maxPos,minValue,minPos); } /*函数功能: 求n个数中的最大值及其所在下标位置 函数入口参数: 整型数组num,存储n个整数 整型变量n,表示数组元素个数 函数出口参数: 整型指针变量pMaxPos,指向的地址单元存储最大值在数组中的下标位置 函数返回值: 最大值 */ intFindMax(intnum[],intn,int*pMaxPos) { inti,max; max=num[0];/*假设num[0]为最大*/ *pMaxPos=0;/*假设最大值在数组中的下标位置为0*/ for(i=1;i { if(num[i]>max) { max=num[i]; *pMaxPos=i; } } returnmax; } /*函数功能: 求n个数中的最小值及其所在下标位置 函数入口参数: 整型数组num,存储n个整数 整型变量n,表示数组元素个数 函数出口参数: 整型指针变量pMinPos,指向的地址单元存储最小值在数组中的下标位置 函数返回值: 最小值 */ intFindMin(intnum[],intn,int*pMinPos) { inti,min; min=num[0];/*假设num[0]为最小*/ *pMinPos=0;/*假设最小值在数组中的下标位置为0*/ for(i=1;i<10;i++) { if(num[i] { min=num[i]; *pMinPos=i; } } returnmin; } (2) #include voidFindMax(intnum[],intn,int*pMax,int*pMaxPos); voidFindMin(intnum[],intn,int*pMin,int*pMinPos); main() { intnum[10],maxValue,maxPos,minValue,minPos,i; printf("Input10numbers: \n"); for(i=0;i<10;i++) { scanf("%d",&num[i]);/*输入10个数*/ } FindMax(num,10,&maxValue,&maxPos);/*找最大值及其所在下标位置*/ FindMin(num,10,&minValue,&minPos);/*找最小值及其所在下标位置*/ printf("Max=%d,Position=%d,Min=%d,Position=%d\n", maxValue,maxPos,minValue,minPos); } /*函数功能: 求n个数中的最大值及其所在下标位置 函数入口参数: 整型数组num,存储n个整数 整型变量n,表示数组元素个数 函数出口参数: 整型指针变量pMaxPos,指向的地址单元存储最大值在数组中的下标位置 整型指针变量pMax,指向的地址单元存储最大值 函数返回值: 无 */ voidFindMax(intnum[],intn,int*pMax,int*pMaxPos) { inti; *pMax=num[0];/*假设num[0]为最大*/ *pMaxPos=0;/*假设最大值在数组中的下标位置为0*/ for(i=1;i { if(num[i]>*pMax) { *pMax=num[i]; *pMaxPos=i; } } } /*函数功能: 求n个数中的最小值及其所在下标位置 函数入口参数: 整型数组num,存储n个整数 整型变量n,表示数组元素个数 函数出口参数: 整型指针变量pMinPos,指向的地址单元存储最小值在数组中的下标位置 整型指针变量pMin,指向的地址单元存储最小值 函数返回值: 无 */ voidFindMin(intnum[],intn,int*pMin,int*pMinPos) { inti; *pMin=num[0];/*假设num[0]为最小*/ *pMinPos=0;/*假设最小值在数组中的下标位置为0*/ for(i=1;i<10;i++) { if(num[i]<*pMin) { *pMin=num[i]; *pMinPos=i; } } } (3) #include voidFindMaxMin(intnum[],intn,int*pMax,int*pMaxPos,int*pMin, int*pMinPos); main() { intnum[10],maxValue,maxPos,minValue,minPos,i; printf("Input10numbers: \n"); for(i=0;i<10;i++) { scanf("%d",&num[i]);/*输入10个数*/ } /*找最大值最小值及其所在下标位置*/ FindMaxMin(num,10,&maxValue,&maxPos,&minValue,&minPos); printf("Max=%d,Position=%d,Min=%d,Position=%d\n", maxValue,maxPos,minValue,minPos); } /*函数功能: 求n个数中的最大值和最小值及其所在下标位置 函数入口参数: 整型数组num,存储n个整数 整型变量n,表示数组元素个数 函数出口参数: 整型指针变量pMaxPos,指向的地址单元存储最大值在数组中的下标位置 整型指针变量pMax,指向的地址单元存储最大值 整型指针变量pMinPos,指向的地址单元存储最小值在数组中的下标位置 整型指针变量pMin,指向的地址单元存储最小值 函数返回值: 无 */ voidFindMaxMin(intnum[],intn,int*pMax,int*pMaxPos,int*pMin, int*pMinPos) { inti; *pMax=num[0];/*假设num[0]为最大*/ *pMaxPos=0;/*假设最大值在数组中的下标位置为0*/ *pMin=num[0];/*假设num[0]为最小*/ *pMinPos=0;/*假设最小值在数组中的下标位置为0*/ for(i=1;i { if(num[i]>*pMax) { *pMax=num[i]; *pMaxPos=i; } elseif(num[i]<*pMin) { *pMin=num[i]; *pMinPos=i; } } } 7.8 (1) #include #include voidInverse(char*pStr); main() { charstr[80]; printf("Inputastring: \n"); gets(str);/*输入字符串*/ Inverse(str);/*将存于str数组中的字符串逆序存放*/ printf("Theinversedstringis: \n"); puts(str);/*输出字符串*/ } /*函数功能: 实现字符串逆序存放 函数参数: 字符指针变量,所指向的存储单元存放源字符串,逆序后的字符串也存放于此 返回值: 无 */ voidInverse(char*pStr) { intlen; chartemp; char*pStart;/*指针变量pStart指向字符串的第一个字符*/ char*pEnd;/*指针变量pEnd指向字符串的最后一个字符*/ len=strlen(pStr);/*求出字符串长度*/ for(pStart=pStr,pEnd=pStr+len-1;pStart { temp=*pStart; *pStart=*pEnd; *pEnd=temp; } } (2) #include #include voidInverse(char*pStr); main() { charstr[80]; printf("Inputastring: \n"); gets(str);/*输入字符串*/ Inverse(str);/*将存于str数组中的字符串逆序存放*/ printf("Theinversedstringis: \n"); puts(str);/*输出字符串*/ } /*函数功能: 实现字符串逆序存放 函数参数: 字符指针变量,所指向的存储单元存放源字符串,逆序后的字符串也存放于此 返回值: 无 */ voidInverse(char*pStr) { intlen=0; chartemp; char*pStart=pStr;/*指针变量pStart指向字符串的第一个字符*/ char*pEnd;/*指针变量pEnd指向字符串的最后一个字符*/ for(;*pStart! ='\0';pStart++)len++;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 沈阳 建筑 大学 语言 知识 学习 深刻 复习资料