当前位置:首页 » 编程语言 » c语言程序设计安徽版
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言程序设计安徽版

发布时间: 2023-06-16 09:41:44

‘壹’ 安徽公务员考试中计算机类包括哪些专业

这些都是计算机类的专业:
计算机科学技术,计算机科学教育,计算机网络技术,计算机网络工程,计算机网络技术工程,网络技术,网络工程,计算机数据库,数据库技术,计算机数据库技术,数据库,计算机管理,计算机应用,计算机控制,计算机控制技术,计算机通信,计算机通讯,计算机多媒体技术,多媒体技术,智能科学与技术,信息与计算机科学,计算数学及其应用软件,计算机与经济管理,计算机系统维护,计算机应用技术,计算机硬件,计算机器件,计算机设备,电器与电脑,可视化程序设计,Web应用程序设计,多媒体制作,图形图像制作,办公自动化技术,经济计算机管理,软件工程,计算机网络,计算机科学与技术,计算机及应用,计算机与信息管理,计算机信息管理,计算机信息应用,计算机软件与理论,物联网工程,电子与计算机工程,空间信息与数字技术,仿真科学与技术,计算机软件,传感网技术,信息安全,信息管理与信息系统

‘贰’ 安徽省计算机二级报名时间2022年

报名时间:2022年11月1日0:00至11月8日23:00。

根据安徽省教育招生考试院《关于做好2022年下半年全国高等学校(安徽考区)计算机水平考试工作的通知》(皖招考[2022]149号)要求,现将我校2022年下半年安徽省计算机二级水平考试报名有关事项通知如下:

一 报名对象:在校本专科学生。

二 考试级别和语种:

1.考试级别:二级

2.考试语种(代码):

VisualBasic6.0程序设计(211)网页设计与制作(260)

c语言程序设计 (240)Access数据库程序设计(253)

Python程序设计(290) 办公软件高级应用(280)

三 报名时间、方式及流程:

1.报名时间:2022年11月1日0:00至11月8日23:00。

2.报名方式:网上报名。

3.报名流程:登陆“教务管理系统”à点击“考试报名”à点击“成绩管理”à点击“社会考试报名”,选择“考级课程名称”(注意不要选错语种),点击“报名”,进入报名界面,填写相关信息。

点击确认。

四 缴费时间及方式:

1.缴费时间:2022年11月17日8:00 至11月25日12:00。

2.缴费方式:微信缴费。

3.缴费流程:

微信关注“安徽工业大学云杰校园”公众号,依次点击“日常业务”à“交费/付款”à“我的待交”à“安徽省计算机二级水平考试”,按照界面提示缴费,缴费完成即视为报名成功。

4.报名费用:根据安徽省物价局、财政厅皖价费[2005]269号文件规定,每门语种考试报名费35元。

五 考试时间:

1.全部为上机考试,考试时间90分钟,考试日期:2022年12月18日(具体考试时间和地点详见考生本人准考证)。

2.考试补考:若因故需要补考的,补考时间届时另行通知。

六 其他事项:

1.考生进入考场必须携带准考证、身份证,否则无法参加考试。

2.自2022年12月5日起,学生可在两个校区的计算中心进行上机考试模拟测试。

3.若因故不能按时参加上机考试的,请务必提前到教务处教务科办理相关手续。

七 友情提醒

1.逾期未缴费的,视为报名不成功,不得参加本次考试。

2.报考姓名、身份证号码等基本信息应确保准确无误。证书打印后姓名、身份证号码等基本信息无法修改。

3.请准时参加上机考试模拟,熟悉考试流程。

‘叁’ C语言程序设计教程答案~有追加悬赏100分!

1 【C语言】《C语言程序设计教程(第二版)》习题答案

说 明
1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理
工大学出版社出版的,绿皮。

2 第1章 程序设计基础知识
一、单项选择题(第23页)
1-4.CBBC 5-8.DACA

二、填空题(第24页)
1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言 7.有穷性 8.直到型循环 9.算法 10.可读性 11.模块化 12.对问题的分析和模块的划分

三、应用题(第24页)
2.源程序:
main()
{int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */
printf("cock hen chick\n");
for(i=1;i<=20;i++)
for(j=1;j<=33;j++)
for(k=1;k<=33;k++)
if (i+j+k*3==100&&i*5+j*3+k==100)
printf(" %d %d %d\n",i,j,k*3);}
执行结果:
cock hen chick
4 18 78
8 11 81
12 4 84
3.现计算斐波那契数列的前20项。
递推法 源程序:
main()
{long a,b;int i;
a=b=1;
for(i=1;i<=10;i++) /*要计算前30项,把10改为15。*/
{printf("%8ld%8ld",a,b);
a=a+b;b=b+a;}}
递归法 源程序:
main()
{int i;
for(i=0;i<=19;i++)
printf("%8d",fib(i));}
fib(int i)
{return(i<=1?1:fib(i-1)+fib(i-2));}
执行结果:
1 1 2 3 5 8 13 21 34 55
89 144 233 377 610 987 1597 2584 4181 6765
4.源程序:
#include "math.h";
main()
{double x,x0,deltax;
x=1.5;
do {x0=pow(x+1,1./3);
deltax=fabs(x0-x);
x=x0;
}while(deltax>1e-12);
printf("%.10f\n",x);}
执行结果:
1.3247179572
5.源程序略。(分子、分母均构成斐波那契数列)
结果是32.66026079864
6.源程序:
main()
{int a,b,c,m;
printf("Please input a,b and c:");
scanf("%d %d %d",&a,&b,&c);
if(a<b){m=a;a=b;b=m;}
if(a<c){m=a;a=c;c=m;}
if(b<c){m=b;b=c;c=m;}
printf("%d %d %d\n",a,b,c);}
执行结果:
Please input a,b and c:123 456 789
789 456 123
7.源程序:
main()
{int a;
scanf("%d",&a);
printf(a%21==0?"Yes":"No");}
执行结果:
42
Yes

3 第2章 C语言概述
一、单项选择题(第34页)
1-4.BDCB 5-8.AABC

二、填空题(第35页)
1.主 2.C编译系统 3.函数 函数 4.输入输出 5.头 6. .OBJ 7.库函数 8.文本

三、应用题(第36页)
5.sizeof是关键字,stru、_aoto、file、m_i_n、hello、ABC、SIN90、x1234、until、cos2x、s_3是标识符。
8.源程序:
main()
{int a,b,c;
scanf("%d %d",&a,&b);
c=a;a=b;b=c;
printf("%d %d",a,b);}
执行结果:
12 34
34 12

4 第3章 数据类型与运算规则
一、单项选择题(第75页)
1-5.DBACC 6-10.DBDBC 11-15.ADCCC 16-20.CBCCD 21-25.ADDBC 26-27.AB

二、填空题(第77页)
1.补码 2.±(10^-308~10^308) 3.int(整数) 4.单目 自右相左 5.函数调用 6.a或b 7.1 8.65,89

三、应用题(第78页)
1.10 9
2.执行结果:
11
0
0
12
1

5 第4章 顺序结构程序设计
一、单项选择题(第90页)
1-5.DCDAD 6-10.BACBB

二、填空题(第91页)
1.一 ;2. 5.169000 3.(1)-2002500 (2)I=-200,j=2500 (3)i=-200
j=2500 4.a=98,b=765.000000,c=4321.000000 5.略 6.0,0,3 7.3 8.scanf("%lf%lf%lf",&a,&b,&c); 9. 13 13.000000,13.000000 10.a=a^c;c=c^a;a=a^c;(这种算法不破坏b的值,也不用定义中间变量。)

三、编程题(第92页)
1.仿照教材第27页例2-1。
2.源程序:
main()
{int h,m;
scanf("%d:%d",&h,&m);
printf("%d\n",h*60+m);}
执行结果:
9:23
563
3.源程序:
main()
{int a[]={-10,0,15,34},i;
for(i=0;i<=3;i++)
printf("%d\370C=%g\370F\t",a[i],a[i]*1.8+32);}
执行结果:
-10℃=14°F 0℃=32°F 15℃=59°F 34℃=93.2°F
4.源程序:
main()
{double pi=3.14159265358979,r=5;
printf("r=%lg A=%.10lf S=%.10lf\n",r,2*pi*r,pi*pi*r);}
执行结果:
r=5 A=31.4159265359 S=49.3480220054
5.源程序:
#include "math.h";
main()
{double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
if (a+b>c&&a+c>b&&b+c>a)
{double s=(a+b+c)/2;
printf("SS=%.10lf\n",sqrt(s*(s-a)*(s-b)*(s-c)));}
else printf("Data error!");}
执行结果:
4 5 6
SS=9.9215674165
6.源程序:
main()
{int a=3,b=4,c=5;float d=1.2,e=2.23,f=-43.56;
printf("a=%3d,b=%-4d,c=**%d\nd=%g\ne=%6.2f\nf=%-10.4f**\n",a,b,c,d,e,f);}
7.源程序:
main()
{int a,b,c,m;
scanf("%d %d %d",&a,&b,&c);
m=a;a=b;b=c;c=m;
printf("%d %d %d\n",a,b,c);}
执行结果:
5 6 7
6 7 5
8.源程序:
main()
{int a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("average of %d,%d and %d is %.2f\n",a,b,c,(a+b+c)/3.);
执行结果:
6 7 9
average of 6,7 and 9 is 7.33
9.不能。修改后的源程序如下:
main()
{int a,b,c,x,y;
scanf("%d %d %d",&a,&b,&c);
x=a*b;y=x*c;
printf("a=%d,b=%d,c=%d\n",a,b,c);
printf("x=%d,y=%d\n",x,y);}

6 第5章 选择结构程序设计
一、单项选择题(第113页)
1-4.DCBB 5-8.DABD

二、填空题(第115页)
1.非0 0 2.k==0
3.if (abs(x)>4) printf("%d",x);else printf("error!");
4.if((x>=1&&x<=10||x>=200&&x<=210)&&x&1)printf("%d",x);
5.k=1 (原题最后一行漏了个d,如果认为原题正确,则输出k=%。)
6. 8! Right!11 7.$$$a=0 8.a=2,b=1

三、编程题(第116页)
1.有错。正确的程序如下:
main()
{int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
printf("min=%d\n",a>b?b>c?c:b:a>c?c:a);}
2.源程序:
main()
{unsigned long a;
scanf("%ld",&a);
for(;a;printf("%d",a%10),a/=10);}
执行结果:
12345
54321
3.(1)源程序:
main()
{int x,y;
scanf("%d",&x);
if (x>-5&&x<0)y=x;
if (x>=0&&x<5)y=x-1;
if (x>=5&&x<10)y=x+1;
printf("%d\n",y);}
(2)源程序:
main()
{int x,y;
scanf("%d",&x);
if(x<10) if(x>-5) if(x>=0) if(x>=5)y=x+1;
else y=x-1; else y=x;
printf("%d\n",y);}
(3)源程序:
main()
{int x,y;
scanf("%d",&x);
if(x<10) if(x>=5)y=x+1;
else if(x>=0)y=x-1;
else if(x>-5)y=x;
printf("%d\n",y);}
(4)源程序:
main()
{int x,y;
scanf("%d",&x);
switch(x/5)
{case -1:if(x!=-5)y=x;break;
case 0:y=x-1;break;
case 1:y=x+1;}
printf("%d\n",y);}
4.本题为了避免考虑每月的天数及闰年等问题,故采用面向对象的程序设计。
现给出Delphi源程序和C++ Builder源程序。
Delphi源程序:
procere TForm1.Button1Click(Sender: TObject);
begin
edit3.Text:=format('%.0f天',[strtodate(edit2.text) -strtodate(edit1.text)]);
end;
procere TForm1.FormCreate(Sender: TObject);
begin
Edit2.Text:=datetostr(now);
button1click(form1)
end;
C++ Builder源程序:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit3->Text=IntToStr(StrToDate(Edit2->Text)-StrToDate(Edit1->Text))+"天";
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Edit2->Text=DateToStr(Now());
Button1Click(Form1);
}
执行结果:(运行于Windows下) http://img378.photo.163.com/nxgt/41463572/1219713927.jpg

5.源程序:
main()
{unsigned a,b,c;
printf("请输入三个整数:");
scanf("%d %d %d",&a,&b,&c);
if(a&&b&&c&&a==b&&a==c)printf("构成等边三角形\n");
else if(a+b>c&&a+c>b&&b+c>a)
if(a==b||a==c||b==c)printf("构成等腰三角形\n");
else printf("构成一般三角形\n");
else printf("不能构成三角形\n");}
执行结果:
请输入三个整数:5 6 5
构成等腰三角形
6.源程序:
main()
{int x,y;
scanf("%d",&x);
if(x<20)y=1;
else switch(x/60)
{case 0:y=x/10;break;
default:y=6;}
printf("x=%d,y=%d\n",x,y);}
7.源程序:
main()
{unsigned m;float n;
scanf("%d",&m);
if(m<100)n=0;
else if(m>600)n=0.06;
else n=(m/100+0.5)/100;
printf("%d %.2f %.2f\n",m,m*(1-n),m*n);}
执行结果:
450
450 429.75 20.25
8. 2171天(起始日期和终止日期均算在内)
本题可利用第4小题编好的程序进行计算。把起始日期和终止日期分别打入“生日”和“今日”栏内,单击“实足年龄”按钮,将所得到的天数再加上1天即可。
9.源程序:
#include "math.h";
main()
{unsigned long i;
scanf("%ld",&i);
printf("%ld %d\n",i%10,(int)log10(i)+1);}
执行结果:
99887
7 5
10.源程序:
main()
{unsigned long i;unsigned j[10],m=0;
scanf("%ld",&i);
for(;i;){j[m++]=(i+2)%10;i/=10;}
for(;m;m--)i=i*10+j[m-1];
printf("%ld\n",i);}
执行结果:
6987
8109
(注:要加密的数值不能是0或以0开头。如果要以0开头需用字符串而不能是整数。)

7 第6章 循环结构程序设计
一、单项选择题(第142页)
1-4.BCCB 5-8.CBCA

二、填空题(第143页)
1.原题可能有误。如无误,是死循环 2.原题有误。如果把b=1后面的逗号改为分号,则结果是8。 3.20 4.11 5. 2.400000 6.*#*#*#$ 7.8 5 2 8.①d=1.0 ②++k ③k<=n 9.①x>=0 ②x<amin

三、编程题(第145页)
1. 源程序:
main()
{int i=1,sum=i;
while(i<101){sum+=i=-i-2;sum+=i=-i+2;}
printf("%d\n",sum);}
执行结果:
51
2.源程序:
main()
{double p=0,n=0,f;int i;
for(i=1;i<=10;i++)
{scanf("%lf",&f);
if (f>0)p+=f; else n+=f;}
printf("%lf %lf %lf\n",p,n,p+n);}
3.源程序:
main()
{unsigned a;
scanf("%ld",&a);
for (;a;printf("%d,",a%10),a/=10);
printf("\b \n");}
执行结果:
23456
6,5,4,3,2
4.源程序:
main()
{unsigned long a,b,c,i;
scanf("%ld%ld",&a,&b);
c=a%1000;
for(i=1;i<b;i++)c=c*a%1000;
if(c<100)printf("0");
if(c<10)printf("0");
printf("%ld\n",c);}
执行结果:
129 57
009
5.略
6.原题提供的计算e的公式有误(前面漏了一项1)。正确的公式是e= 1 + 1 + 1/2! + 1/3! + … + 1/n! + …
(1)源程序:
main()
{double e=1,f=1;int n;
for(n=1;n<=20;n++){f/=n;e+=f;}
printf("e=%.14lf\n",e);}
执行结果:
e=2.71828182845905
(2)源程序:
main()
{double e=1,f=1;int n;
for(n=1;f>1e-4;n++){f/=n;e+=f;}
printf("e=%.4f\n",e);}
执行结果:
e=2.7183
7.源程序:
main()
{unsigned long a=0,b=1,c=0;int i,d;
scanf("%d",&d);
for (i=1;i<=(d+2)/3;i++)
printf("%10ld%10ld%10ld",a,b,(a+=b+c,b+=c+a,c+=a+b));}
本题还可以用递归算法(效率很低),源程序如下:
unsigned long fun(int i)
{return i<=3?i:fun(i-1)+fun(i-2)+fun(i-3);}
main()
{int i,d; scanf("%d",&d);
for(i=1;i<=d;i++)
printf("%10ld",fun(i));}
执行结果:
15
1 2 3 6 11 20 37 68
125 230 423 778 1431 2632 4841
8.源程序:
main()
{int i;
for(i=1010;i<=9876;i+=2)
if(i/100%11&&i%100%11&&i/10%100%11&&i/1000!=i%10&&i/1000!=i/10%10&&i/100%10!=i%10)printf(" %d",i);}
执行结果:
1024 1026 1028 1032 1034 1036 …… …… 9874 9876
9.源程序:
main()
{int i,j,k;
printf("apple watermelon pear\n");
for(i=1;i<=100;i++)
for(j=1;j<=10;j++)
if((k=100-i-j)*2==400-i*4-j*40)
printf("%4d%7d%9d\n",i,j,k);}
执行结果:
apple watermelon pear
5 5 90
24 4 72
43 3 54
62 2 36
81 1 18
10.源程序:
#include "stdio.h";
#define N 4 /* N为阶数,可以改为其他正整数 */
main()
{int m=N*2,i,j;
for(i=1;i<m;printf("\n"),i++)
for(j=1;j<m;
putchar(N-abs(i-N)<=abs(j++-N)?' ':'*'));}
如果把N值改为5,则执行结果如下:
*
***
*****
*******
*********
*******
*****
***
*

作者:宁西贯通 2006-5-7 23:41 回复此发言

--------------------------------------------------------------------------------

8 说明
注意:上面最后一题的输出结果应该是由星号组成的一个菱形,

9 第7章 数 组
一、单项选择题(第192页)
1-4.BBCC 5-8.AABA

二、填空题(第194页)
1.1
2
4
8
16
32
64
128
256
512
2. ①a[age]++ ②i=18;i<26
3. ①break ②i==8
4. ①a[i]>b[j] ②i<3 ③j<5
5. ①b[j]=a[j][0] ②b[j]<a[j][k] 6.a[k++]=a[j]

三、编程题(第196页)
1.源程序:
main()
{int a[4][4],i,j,s=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(i==j||i+j==3)s+=a[i][j];
printf("%d\n",s);} /* 注:5×5矩阵不能照此计算! */
执行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
68
2. 源程序:
main()
{int i,a[36];
a[0]=2;
for(i=1;i<=29;i++)a[i]=a[i-1]+2;
for(;i<=35;i++)a[i]=a[(i-30)*5+2];
for(i=0;i<=35;i++)printf("%d\t",a[i]);}
执行结果:
2 4 6 8 10 12 14 16 18 20
22 24 26 28 30 32 34 36 38 40
42 44 46 48 50 52 54 56 58 60
6 16 26 36 46 56
3. 源程序:
#include "stdlib.h"
#include "time.h"
main()
{int a[30],i,m=0;
randomize();
for(i=0;i<=29;i++)
{a[i]=rand();
if(m<a[i])m=a[i];
printf("%d\t",a[i]);}
for(i=0;i<=29;i++)if(a[i]==m)a[i]=-1;
printf("\n-----------------\n");
for(i=0;i<=29;i++)
if(~a[i])printf("%d\t",a[i]);
printf("\n");}
执行结果:
20679 29377 18589 9034 27083 4959 3438 5241 32278 23344
32499 29305 22340 5927 13031 2161 2583 31855 22977 14283
4851 22038 6992 11394 20887 27381 6293 18347 16414 10210
-----------------
20679 29377 18589 9034 27083 4959 3438 5241 32278 23344
29305 22340 5927 13031 2161 2583 31855 22977 14283 4851
22038 6992 11394 20887 27381 6293 18347 16414 10210
4.源程序:
main()
{int i,n=0,b[16];
scanf("%d",&i);
for(;i;i>>=1)b[n++]=i&1;
for(;n;)printf("%d",b[--n]);}
执行结果:
9876
10011010010100
本题也可以不用数组。源程序如下:
#include "stdio.h"
main()
{int i,n;
scanf("%d",&i);
for(n=16;n;n--)
{asm ROL i,1
putchar(i&1|48);}
} /* ROL是循环左移的汇编指令 */
5. 源程序:
#include "stdlib.h"
#include "time.h"
#define M 5
#define N 6
main()
{int a[M][N],i,j,t[M];
randomize();
/*生成M行N列随机数*/
for(i=0;i<M;printf("\n"),t[i++]=0)
for(j=0;j<N;j++)
printf("%4d",a[i][j]=random(50));
/*找出每行的最小数,t[M]是第M行的最小数所在的列数*/
for(i=0;i<M;i++)
for(j=0;j<N;j++)
if(a[i][t[i]]>a[i][j])t[i]=j;
/*比较每个最小数在其所在的列上是否也是最小*/
for(j=0;j<M;j++)
for(i=0;i<M;i++)
{if(i==j)continue;
if(a[j][t[j]]>a[i][t[j]])
{t[j]=-1;break;}
}
printf("-------------------\n");
/*输出在行和列上均为最小的数*/
for(i=0;i<M;i++)
if(t[i]!=-1)
printf("a[%d,%d]=%d\n",i,t[i],a[i][t[i]]);
}
执行结果:
13 19 13 20 0 1
20 41 6 16 35 30
3 5 37 8 23 15
6 36 24 29 18 1
1 5 28 21 46 34
-------------------
a[0,4]=0
a[1,2]=6
a[3,5]=1
a[4,0]=1
6. 源程序:
#include "stdlib.h"
#include "time.h"
#define M 5
#define N 7
main()
{int a[M][N],i,j,t=0;
randomize();
for(i=0;i<M;i++)
{a[i][N-1]=0;
for(j=0;j<N-1;j++)
{printf("%4d",a[i][j]=random(91)+10);
a[i][N-1]+=a[i][j];}
printf("%4d\n",a[i][N-1]);}
for(i=1;i<M;i++)
if(a[i][N-1]>a[t][N-1])t=i;
if(t)for(j=0;j<N;j++)
{i=a[0][j];a[0][j]=a[t][j];a[t][j]=i;}
printf("-----------------\n");
for(i=0;i<M;printf("\n"),i++)

10 第7章 数 组
for(j=0;j<N;j++)
printf("%4d",a[i][j]);
}
执行结果:
89 17 32 95 35 20 288
39 48 22 27 73 22 231
51 87 39 71 84 46 378
84 94 97 77 27 26 405
69 50 56 89 37 46 347
-----------------
84 94 97 77 27 26 405
39 48 22 27 73 22 231
51 87 39 71 84 46 378
89 17 32 95 35 20 288
69 50 56 89 37 46 347
7. 源程序:
#include "stdlib.h"
#include "time.h"
#define M 5
#define N 6
main()
{int a[M][N],i,j;
struct data{int value,x,y;}max,min;
max.value=0;min.value=100;
randomize();
for(i=0;i<M;printf("\n"),i++)
for(j=0;j<N;j++)
{printf("%4d",a[i][j]=random(100)+1);
if(max.value<a[i][j])
{max.value=a[i][j];max.x=i;max.y=j;}
if(min.value>a[i][j])
{min.value=a[i][j];min.x=i;min.y=j;}
}
printf("-----------------\n");
i=a[0][N-1];a[0][N-1]=max.value;a[max.x][max.y]=i;
i=a[M-1][0];a[M-1][0]=min.value;a[min.x][min.y]=i;
for(i=0;i<M;printf("\n"),i++)
for(j=0;j<N;j++)
printf("%4d",a[i][j]);
}
执行结果:
51 53 74 65 30 40
30 26 50 6 61 27
47 16 54 58 76 19
57 74 44 92 71 48
73 57 60 32 73 67
-----------------
51 53 74 65 30 92
30 26 50 73 61 27
47 16 54 58 76 19
57 74 44 40 71 48
6 57 60 32 73 67
9. 源程序:
main()
{char s[255];int i,j,b=1;
printf("Input a string:");
scanf("%s",s);
i=strlen(s);
for(j=1;j<=i/2;j++)
b=b&&(s[j-1]==s[i-j]);
printf(b?"Yes\n":"No\n");}
执行结果:
Input a string:level
Yes
10. 源程序:
main()
{char s[255],t,max=0,min=0,l,i;
printf("Input a string(length>4):");
gets(s);
l=strlen(s);
for(i=0;i<l;i++)
{if(s[max]<s[i])max=i;if(s[min]>s[i])min=i;}
t=s[1];s[1]=s[max];s[max]=t;if(min==1)min=max;
t=s[l-2];s[l-2]=s[min];s[min]=t;
printf("%s\n",s);}
执行结果:
Input a string(length>4):C++Builder
Cu+Beild+r
11. 源程序:
main()
{char m[13][10]={"****","January","February","March",
"April","May","June","July","August","September",
"October","November","December"};
int i,j,k,a,s,n;
printf("Please input an integer(100..999):");
scanf("%d",&n);
printf("%d:%d+%d+%d=%d, %d%%13=%d, %s\n", n,i,j,k,s,s,a,m[a=((s=(i=n/100)+(j=n/10%10)+(k=n%10))%13)]);}
执行结果:
Please input an integer(100..999):539
539:5+3+9=17, 17%13=4, April

11 第8章 函 数
一、单项选择题(第241页)
1-5.BCCAA 6-10.CCDDD 11-15.ACACB

二、填空题(第243页)
1.看不出原题的意图。因为要计算1~n的累加和,n应是一个≥1的正整数。可是题目中却出现了n=0的情况。除非另加规定当n=0时1~n的累加和为0,或者把原题中的计算式改为计算0~n的累加和。据此猜测,原题应填为:①return(0) ②return(n+sum(n-1))
根据题意,如下程序较为合理:
int sum(int n)
{if(n<=0)return(-1); /* -1是出错标志 */
else if(n==1)return(1);
else return(n+sum(n-1));}
2. ①return(1) ②return(n*facto(n-1))

三、编程题(第244页)
3.源程序:
main()
{int i,a,b,c;
for(i=100;i<999;i++)
if((a=i/100)*a*a+(b=i/10%10)*b*b+(c=i%10)*c*c==i)
printf("%d\t",i);}
执行结果:
153 370 371 407
8.源程序(非递归算法):
#define P 13 /* P可以改为其他正整数 */
main()
{int a[P],r,c;
for(r=0;r<=P;r++)
{a[r]=1;
for(c=r-1;c>=1;a[c--]+=a[c-1]);
printf("%*d",(P-r)*3+1,a[0]);
for(c=1;c<=r;printf("%6d",a[c++]));
printf("\n");}
}
执行结果:
(应该排列成一个三角形,是贴吧造成现在这个样子的,不是程序有问题)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1
9.源程序(递归算法):
#include "stdio.h"
void printOCT(unsigned long n)
{unsigned long i;
if(i=n>>3)printOCT(i);
putchar((n&7)+48);}
main()
{unsigned long i;
scanf("%ld",&i);
printOCT(i);}
执行结果:
1234567890
11145401322
本题也可以不用递归算法,源程序请参考第7章第三题4。

12 回复:【C语言】《C语言程序设计教程(第二版)》习题答案
但是不同时间印刷的版本课后题不太一样呢,象我们的是1999年12月第2版,2005年12月第69次印刷的。没有选择填空,应用题和楼主不知道有多少相同的,因为看不到原题。这个比较麻烦呢。

作者:210.77.204.* 2006-5-9 18:38 回复此发言

--------------------------------------------------------------------------------

13 回复:【C语言】《C语言程序设计教程(第二版)》习题答案
你对照一下主编和出版社,看看对吗?(见说明的第一条。)
我不是说叫你有问题另发帖子吗?

14 第9章 指 针
一、单项选择题(第276页)
1-5.DCDAC 6-10.CCABC 11-16.AABBB 16-20.DCDBD

二、填空题(第278页)
1.①int * ②*z
2.*p++
3.①'\0' ②++
4.①q=p+1 ②q<p+10 ③*q>max ④*q<min

三、编程题(第280页)
7.源程序:
main()
{int i=0;char c[20];
do{scanf("%s",&c);i++;}
while(strcmp(c,"stop"));
printf("%d\n",i);}
执行结果:
This car ran form Nanyang
to Luoyang without a stop
10
9.源程序:
main()
{char s[255],c[255]={0};int i;
gets(s);
for(i=0;s[i];c[s[i++]]++);
for(i=0;i<255;i++)
if(c[i])printf("%c=%d\t",i,c[i]);}
执行结果:
abcedabcdcd
a=2 b=2 c=3 d=3 e=1

‘肆’ c语言程序设计视频教程

链接:

提取码: gfdg

C语言程序设计:

‘伍’ C语言程序设计实验报告完整版

以前做过,时间太长了忘记了,你给的分太少了。人家像这样的都是100多200分的

‘陆’ c语言程序设计心得

C语言程序设计课程是高等院校计算机专业基础课程之一,其教学效果直接影响学生在计算机方面的应用。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。那么要如何写关于c语言程序设计心得呢?本文是c语言程序设计的心得,仅供参考。


c语言程序设计心得一

在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。

虽然在上个学期中,我们已经学习了《C 语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。

C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。

在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。

这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。

在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析 方法 进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!

在参考书上,我们不仅参考了曾经学过的高敬阳主编的《c语言程序设计》,还找到了由谭浩强主编的第三版《c语言》进行参考。

当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。

三周的小学期即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导,更要感谢我们小组成员之间的合作与交流。

c语言程序设计心得二

通过本次教师发展在线的C语程培训中,我受益匪浅,几位教授的精彩演讲,让我找到了自己的不足和日后教学中的改革方向和内容。同时,也让我感觉到了,有今天各位教授的良好教学效果,这其中包含了他们的艰辛、背后的大量付出和无私奉献。

我是一直从事C类语言的教学工作,对C语言的教学已有5年教龄,在这几年的教学过程中,我们也一直在寻找好的 教学方法 和新的教学理念。通过本次学习,我 总结 要教好《C语言程序设计》这门课,最基本要把握好以下几个方面:

(一)要重视实践环节,上机调试成绩非常重要。

学习一门语言,就是要按照它的语法来编程。要编程,当然就要上机操作来验证你程序的正确性。所以上机非常重要,通过执行你所写的程序,完成你所写程序的目标,最终达到你的目的。而且通过执行程序,你会发现程序中的错误,从而使你了解你所学知识中的不足,同时,要学会根据编译时提示的错误来改正程序中发生的错误,以便下次不会再犯同样的错误。

(二)基本语法学习虽然枯草乏味,但是它相当于高楼大厦的一砖一瓦,一定要下硬功夫让学生掌握熟练。

C语言的语法部分。这部分内容是学好C语言的基础,只有学好了这些语法,才会写程序,看程序。所以对一个初学者来说,这部分内容是非常重要的,所以要扎实地熟悉每一个语法,并能根据这些语法来编程。

(三)学习要抓住重点,难点部分要多讲、多学、多练。

通过这次学习使得我对C语言的重点,难点,以及易出错的地方把握的更精准了。当然,这只是针对我个人而言。在C语言学习过程,重点就是数组,指针,以及结构体了。难点也是它们了,不过数组和结构体还是挺简单,所以在此主要就指针方面谈谈自己的看法。

下面谈谈通过这次学习,结合我们学校的教学情况,打算对该课程的教学进行如下几个方面的改革:

(一)理论教学内容的组织

C语言的重点知识包括:结构化程序设计方法、流程图的组织、三种程序设计结构、三种基本数据类型和三种自定义数据类型;难点包括:结构程序设计方法、算法的分析、流程图的组织与设计、函数、指针等。

根据知识内容和每年的新学时安排,我们将理论教学内容分为授课内容和自学内容两 大模块。

(1)授课内容

C语言的授课内容分为两阶段:①基础准备阶段 这部分内容确保学生“实用、够用”,主要包括三种基本数据类型(只要求掌握常用的int,float,char);三种常用运算符及其表达式(赋值、算术、逻辑(包括关系));三种程序设计结构(顺序、选择、循环)。②实训项目驱动阶段 这部分内容主要是“实训实战”,主要包括数组、函数、指针和结构体。通过第一阶段的学习,学生已经具备了一些程序设计的基础知识,在这一阶段将通过一个实训项目的完成来熟悉主要内容,同时巩固第一阶段的成果。

(2)自学内容

课本中的内容上课没重点介绍或者说就是没提到的,划为自学内容。但这些内容,我们并不是在课堂要求学生回去自学:要求过高,规矩过多,这样效果不佳。而是让学生在实验中发现问题后,带着问题去学习,去找答案。

例:整型 我们只介绍int基本类型,当学生想计算n!时,学生测试5!=120时,他可能会去测试20!、50!,这时,存放阶乘的变量Factorial再定义为int,结果就是0了,这时问题就来了,他就会去寻找正确的处理方法(long int)。

(二)实验教学的安排与设计

教学改革方案确定后,我们对本课程实验教学上从多方面进行了教学更新。我们考虑到学生处于了解计算机语言及编程的初级阶段,有许多最基础的内容有待掌握,所以本课程的实验教学不太适合完全以项目开发的形式进行,注重的是加强模块化实训。

(1)上好第一节实验课

我们常说“上好第一节课”,那么第一节实验节的重要性也不言而喻。这节课对培养学生的学习兴趣、增强学生的学习信心、锻炼学生的自主学习等多方面影响很大。

第一次实验项目是&mdash;熟悉Turbo C的运行环境,主要是掌握一些在TC中的一些键盘操作方式。一般是教师给学生提供程序代码(三个),但我们在学生不知情的情况下,给学生两个有语法错误的和一个正确的程序。这样,当学生运行正确的程序时,知道计算机可以帮我们处理问题,原来程序就是这样写的;当学生运行错误的程序,首先他会诧异(老师给的程序原来是错的),于是要求他们自己修改,尤其是有时一个致命错误导致的10多个errors,被学生修改后,没有了errors或所剩无几,这时学生表现的很兴奋、很有成就感,从而加强了本课程的学习兴趣和信心。

(2)分两阶段进行

实验内容与理论教学内容相互应,在基础准备阶段,这方面教学方法上主要是加强操练。通过各种大小程序、多重训练和一个问题的多种解法来加强语法知识点的掌握和训练,开阔学生编程的思路,掌握编程基础。同时,在这过程中我们严格把关,让学生课后认真准备,每次进实验室时,应有写好的完整代码,上机调试,发现问题同时解决问题,要求认真完成实验内容,并在课后书写实验 报告 。鼓励学生多写程序,要加强实践环节,首先要从量上有个划分。在实训项目驱动阶段。本阶段实训项目的设计非常重要,原则是既要使学生有切入点能够动手又要使各章的内容之间有联系点。

(三)案例教学法

C语言的教学,教师一般受传统应试 教育 的影响,狠抓理论考试,忽略了程序设计能力的培养,把授课重点放在程序设计语言的基本语法的讲授和掌握上,所选的编程实例大多用于语法规则的验证和说明,仅从程序设计语言的使用这个单一的角度进行教学,而使得大多数学生在学完本课程后,“吃不透、用不活”,表现为学生在程序调试时,对程序中出现的逻辑错误经常不知所措,在开发较大的应用程序时,不知道如何入手。

采用案例教学法,以程序设计为主线,以编程应用为驱动,通过案例和问题引出教材内容,重点讲解程序设计的思想和方法,穿插讲解相关的语言知识。使教学效果既有深度又有广度,学生实际动手能力大为增强。

以上是我个人结合我院C语言程序设计的教学情况,自己总结了几点看法和一些改革 措施 ,拿出来和大家一起分享,请大家多提宝贵意见。通过这次学习,我将会灵活运用几位教授的教学 经验 ,根据我院的教学对象,调整一些上课方法和措施,望能更好的提高教学质量。

c语言程序设计心得三

通过此次C语言程序设计实践,本人实在是获益不浅!C语言是上个学期开的课程,所以这个学期并没怎么看过,当要开始设计的时候,还真不知从哪下手!结果,第一次的上机,我傻坐着不知道该做什么,后来就写了几个预处理命令。回去以后,我想,这样不行,这样下去还得了!我就重新复习了一遍我们上个学期学习的内容,发觉自已有许多都遗忘了!特别是有文件的操作,几乎是一遍空白!温习过后,开始做题!

一开始做题,也是有点模糊,在指导老师的指导下,我们慢慢的进入状态,我们做的是一个通讯录,内容包括很多。运用的函数也是非常的复杂,我们一组有七个人,我分工合作,首先我一起完成了结构题,然后我们一人各负责一个函数程序的设计,经过几星期的努力,我们完成了大半个程序,但是总是有很多错误出现,有好多是些小问题,这都是我们粗心大意造成的,所以设计程序一定要仔细,不容一点的马虎。当然也有大问题,关于文件的操作,是我们最大的问题,不过,我们做好后,经过老师的讲解和改错,我们也懂得设计和运用了。同时,也让我知道了,合作的力量,如果是孤军奋战的话,我也不能在规定时间内完成,当然,也多亏老师的指导。

这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验!

↓↓↓点击下一页还有更多精彩的C语言编程 学习心得 ↓↓↓