哈工大 c语言 课程:第二章(c语言)
- 格式:ppt
- 大小:1.25 MB
- 文档页数:46
c语言大一上第二章知识点C语言作为一门编程语言,在计算机科学领域有着广泛的应用。
对于大一学生来说,C语言是他们进入程序设计的第一步。
在大一上学期的第二章,学生们将学习一些重要的C语言知识点,包括变量、数据类型、运算符等。
本文将为大家总结这些知识点,以帮助他们更好地学习和理解。
首先,我们来谈谈变量。
在C语言中,变量是用于存储数据的一种方式。
在使用变量之前,我们需要先声明它们的数据类型。
常见的数据类型包括整型、字符型、浮点型等。
在声明变量时,我们需要指定变量的名称和数据类型。
例如,int a;就声明了一个整型变量a。
接下来,我们来具体讨论每种数据类型。
整型是用于表示整数的数据类型。
在C语言中,int表示整型。
例如,int a = 5;就将整数5赋值给了变量a。
字符型用于表示一个字符。
在C语言中,用单引号' '表示字符型。
例如,char c = 'A';就将字符'A'赋值给了变量c。
浮点型用于表示小数。
在C语言中,float表示单精度浮点型,而double表示双精度浮点型。
例如,float f = 3.14;就将小数3.14赋值给了变量f。
除了基本的数据类型,C语言还提供了一些复合的数据类型。
数组是其中的一种。
数组用于存储多个相同类型的元素。
在声明数组时,我们需要指定数组的名称、数据类型和元素个数。
例如,int numbers[5];就声明了一个包含5个整数的数组numbers。
数组中的每个元素都有一个索引,从0开始递增。
我们可以通过索引来访问数组中的元素。
例如,numbers[0]表示数组中的第一个元素。
除了数组,C语言还提供了结构体这一复合数据类型。
结构体可以用于表示一组相关的数据。
在声明结构体时,我们需要指定结构体的名称和成员变量。
例如,我们可以用一个名为student的结构体来表示学生的姓名、年龄和成绩。
结构体的成员变量可以是不同的数据类型。
我们可以通过结构体名称和成员变量来访问结构体中的数据。
第一篇:c语言程序设计第二章课后参考答案第二章:C程序的基本结构一、单项选择题1、以下不是C语言的特点的是________。
A)语言的表达能力强B)语言定义严格C)数据结构系统化D)控制流程结构化2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。
A)编辑和编译B)编译和连接C)连接和运行D)编辑和运行3、以下不是二进制代码文件是________。
A)标准库文件B)目标文件C)源程序文件D)可执行文件4、下面个选项组中,均属于C语言关键字的一组是________。
A)auto,enum,includeB)switch,typedef,continue C)signed,union,scanf D)if,struct,type5、下面四组字符串中,都可以用作C语言标识符的是________。
A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY6、以下不属于流程控制语句的是_________。
A)表达式语句B)选择语句C)循环语句D)转移语句7、下面描述中,不正确的是________。
A)C语言的函数体由一系列语句和注释组成。
B)注释内容不能单独写在一行上。
C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。
D)scanf和printf是标准库函数而不是输入和输出语句。
8、下面描述中,正确的是________。
A)主函数的花括号必须有,而子函数中的花括号是可有可无的。
B)一个C程序行只能写一个语句。
C)主函数是程序启动时的唯一入口。
D)函数体包含了函数说明部分。
二、填空题1、一个完整的C程序至少要有一个________函数。
(主函数)2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。
第3章数据类型、运算符与表达式习题答案一、选择题1.以下表示正确常量的是()。
(A) E-5 (B) 1E5.1 (C) 'a12' (D) 32766L【答案】D2.若有定义:int a=1,b=2,c=3,d=4,x=5,y=6; 则表达式(x=a>b)&&(y=c>d) 的值为()。
(A)0 (B) 1 (C) 5 (D) 6【答案】A3.以下()是正确的字符常量。
(A)"c" (B) '\\'' (C) 'W' (D) "\32a"【答案】C4.以下()是不正确的字符串常量。
(A) 'abc' (B) "12'12" (C) "0" (D) " "【答案】A5.以下是正确的浮点数的是()。
(A)e3 (B) .62 (C) 2e4.5 (D) 123【答案】B6.若有定义:int a=2; 则正确的赋值表达式是()。
(A)a-=(a*3) (B) double(-a) (C) a*3 (D) a*4=3【答案】A7.若有定义:int x=1111,y=222,z=33;则语句printf("%4d+%3d+%2d", x, y, z);运行后的输出结果为()。
(A)111122233 (B)1111,222,33(C)1111 222 33 (D)1111+222+33【答案】D8.已有如下定义和输入语句:int a,b;scanf("%d,%d",&a,&b);若要求a、b的值分别为11和22,正确的数据输入是哪一个?()(A)11 22 (B)11,22 (C)a=11,b=22 (D)11;22【答案】B9.已有如下定义和输入语句,int a; char c1,c2;scanf("%d%c%c",&a,&c1,&c2);若要求a、c1、c2的值分别为40、A和A,正确的数据输入是()。
一、选择题1. 对一维数组a的正确说明是 D 。
A) int a(10); B) int n=10,a[n]; C) int n; D) #define SIZE 10scanf("%d",&n); int a[SIZE];int a[n];2. 能对二维数组a进行正确初始化的语句是B。
A) int a[2][]={{1,0,1},{5,3,2}}; B) int a[][3]={{1,2,3},{4,5,6}};C) int a[2][4]={{1,2,3},{4,5},{6}}; D)int a[][3]={{1,0,1},{1,2,3,4},{1,1}};3. 对两个数组a和b进行如下初始化char a[]="ABCDEF";char b[]={'A','B','C','D','E','F'};则以下叙述正确的是D。
A) a与b数组完全相同B) a与b长度相同C) a和b中都存放字符串D) a数组比b数组长度长4. 以下数组定义中不正确的是 D 。
A) int a[2][3]; B) int b[][3]={0,1,2,3,4,5};C) int c[100][100]={0}; D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}};5. 以下选项中,不能正确赋值的是 A 。
A) char s1[10];s1="Ctest"; B) char s2[]={'C', 't', 'e', 's', 't'};C) char s3[20]="Ctest"; D) char s4[]="Ctest\n"二、阅读程序写出结果1.#include<stdio.h>void main(){ char ch[7]={"12ab56"};int i,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';printf("%d\n",s);}答案:12.#include<stdio.h>void main(){ int a[10]={1,2,2,3,4,3,4,5,1,5};int n=0,i,j,c,k;for(i=0;i<10-n;i++){ c=a[i];for(j=i+1;j<10-n;j++)if(a[j]==c){ n++;for(k=j;k<10-n;k++)a[k]=a[k+1];}}for(i=0;i<(10-n);i++)printf("%d",a[i]);}答案:123453.#include <stdio.h>void main(){ int i;char a[]="Time",b[]="Tom";for(i=0;a[i]!='\0'&&b[i]!='\0';i++)if(a[i]==b[i])if(a[i]>='a'&&a[i]<='z')printf("%c",a[i]-32);elseprintf("%c",a[i]+32);else printf("*");}答案:t*M4.#include<stdio.h>#define LEN 4void main(){ int j,c;static char n[2][LEN+1]={"8980","9198"}; for(j=LEN-1;j>=0;j--){c=n[0][j]+n[1][j]-2*'0';n[0][j]=c%10+'0';}for(j=0;j<=1;j++) puts(n[j]);}答案:7078 9198三、程序填空1.程序的功能是在a数组中查找与x值相同的元素的所在位置。
哈工大c课程设计一、教学目标本课程的教学目标是让学生掌握哈工大c课程的核心知识,包括(具体知识点),能够运用(具体技能),并培养(情感态度和价值观)。
这些目标具有可衡量性,以便学生和教师了解课程的预期成果。
二、教学内容根据课程目标,教学内容主要包括(具体知识点),教材选用哈工大c课程教材,并按照教材章节进行教学安排。
三、教学方法为了激发学生的学习兴趣和主动性,我们将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。
这些方法将有助于学生更好地理解和掌握课程内容。
四、教学资源我们将选择和准备适当的教学资源,包括教材、参考书、多媒体资料和实验设备等。
这些资源将支持教学内容和教学方法的实施,丰富学生的学习体验。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
评估方式应客观、公正,能够全面反映学生的学习成果。
我们将根据教材和课程内容,设计相应的评估题目,确保评估结果能够真实反映学生的掌握情况。
六、教学安排教学安排规定了教学进度、教学时间和教学地点等。
教学安排应合理、紧凑,确保在有限的时间内完成教学任务。
同时,教学安排还应考虑学生的实际情况和需要,如学生的作息时间、兴趣爱好等。
七、差异化教学根据学生的不同学习风格、兴趣和能力水平,我们将设计差异化的教学活动和评估方式,以满足不同学生的学习需求。
通过差异化教学,我们将更好地激发学生的学习潜能,提高教学效果。
八、教学反思和调整在实施课程过程中,我们将定期进行教学反思和评估,根据学生的学习情况和反馈信息,及时调整教学内容和方法,以提高教学效果。
教学反思和调整将帮助我们更好地适应学生的学习需求,提升教学质量。
九、教学创新为了提高教学的吸引力和互动性,我们将尝试新的教学方法和技术。
结合现代科技手段,如在线平台、虚拟实验室等,我们将激发学生的学习热情,提升教学效果。
十、跨学科整合考虑不同学科之间的关联性和整合性,我们将促进跨学科知识的交叉应用和学科素养的综合发展。
H a r b i n I n s t i t u t e o f T e c h n o l o g y课程设计说明书(论文)课程名称: C语言课程设计设计题目:音乐程序与波特图院系:航天学院控制科学与工程系班级:设计者:学号:指导教师:设计时间:哈尔滨工业大学教务处哈尔滨工业大学课程设计任务书姓名:院(系):专业:班号:任务起至日期:年月日至年月日课程设计题目:已知技术参数和设计要求:工作量:工作计划安排:同组设计者及分工:指导教师签字___________________年月日教研室主任意见:教研室主任签字___________________年月日*注:此任务书由课程设计指导教师填写。
题目一1.1 题目详细描述:播放音乐程序,实现了自选音乐曲目和直接使用键盘弹奏,而且可以在曲目播放结束后循环选择乐曲。
1.2 程序设计思路及流程图:是1.3 #include <stdio.h> #include <dos.h> #include <stdlib.h> #include <time.h> #include <bios.h> #include <conio.h> #define N1 16 #define N2 8 #define N4 4 #define N8 2 #define N16 1 #define END 0void playmusic(int n,int *c); void typemusic(); enum NOTES{C10=131,D10=147,E10=165,F10=175,G10=196,A10=220,B10=247, C0=262,D0=296,E0=330,F0=349,G0=392,A0=440,B0=494, C1=523,D1=587,E1=659,F1=698,G1=784,A1=880,B1=988,C2=1047,D2=1175,E2=1319,F2=1397,G2=1568,A2=1760,B2=1976,S=10 };typedef enum NOTES SONG;开始 绘制文本背景并功能说明打用户选择曲目,或者选择自己利 用键盘弹奏。
第一章:1.2答:控制器、运算器、存储器、输入设备和输出设备。
第二章:2.2(1)C(2)B(3)A(4)B(5)D(6)D(7)D(8)CB第三章3.2(1)C(2)D3.3(1)在scanf函数中,参数应是两个变量的地址。
scanf(“%d,%d”,&a,&b);(2) 数据输出格式与数据类型不相配printf(“%f”,f);(3) 数据输入格式与数据类型不相配scanf(“%lf%ld”,&var,&a);(4)在scanf输入格式控制串中多了\n,a和b前面少了&scanf(“%d,%d”,&a,&b);(5)%f的输入格式不应有精度控制Scanf(“%5f”,&f);(6)程序输入错误使变量a,b的值不是6,2输入a=6,b=2(回车)3.4(1)aabbccabc(2)0 1 1(3)68(4)3.500000(5)12 913 9(6)12 913 93.5因为1/2在C语言中的值为零,S始终是零,结果错误。
#include<stdio.h>#include<math.h>main()float a,b,c;float s,area;printf("Input a,b,c:");scanf("%f,%f,%f",&a,&b,&c);s =1.0/2*(a+b+c);area = sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%.2f\n",area);getch();}第四章4.2(1)D(2)B(3)D(4)D4.3(1)over!(2)right(3)right(4)right?(5)1,abcdefg$abcdefgEnd!2,abcdefgEnd!(6)************************(7)*#*#*#$4.4(1)1,(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) 2,flag(2)1,(ch >= …a‟ && ch <= …z‟) || (ch >= …A‟ && ch <= …Z‟) 2,ch <= …9‟ && ch >= …0‟3,ch = …‟(3)1,fahr2,Celsius = 5.0 / 9 * (fahr - 32)3,fahr = fahr + step4.15#include<stdio.h>#include<math.h>main()int n = 1,count = 1;double e = 1.0,term = 1.0;while(fabs(term) >= 1e-5){term = term / n;e = e + term;n++;count++;}printf("e=%f,count=%d\n",e,count);getch();}4.18#include<stdio.h>main(){int i,j,k,n;printf("result is:");for(n=100; n<1000; n++){i = n/100;j = (n-i*100)/10;k = n%10;if(i*100 + j*10 + k==i*i*i + j*j*j + k*k*k){printf("%d\t",n);}}printf("\n");getch();}4.19#include<stdio.h>#include<math.h>main(){int i1,i2,i3,i4,k,n;printf("Input data is:");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("The sum of the total bit is %d\n",i1+i2+i3+i4);getch();}4.20#include<stdio.h>main(){int x = 0;do{x++;}while(!(x%5==1 && x%6==5 && x%7==4 && x%11==10));printf("x=%d\n",x);getch();}4.22#include<stdio.h>main(){int i,j,k;for(i=0; i<=3;i++){for(j=0;j<=3;j++){for(k=0;k<=6;k++){if(i+j+k==8){printf("i=%d,j=%d,k=%d\n",i,j,k);}}}}getch();}4.23#include <stdio.h>main(){int x,y;for (x=1; x<=97; x++){y=98-x;if(2*x + 4*y == 386){printf("x=%d, y=%d\n",x, y);}}getch();}4.24#include<stdio.h>main(){int x,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);}}}getch();}。