哈工大c语言12

合集下载

哈尔滨工业大学2003-2006年C语言 考试题

哈尔滨工业大学2003-2006年C语言 考试题

哈工大2003年春季学期C语言考试题说明:请将答案写在答题纸的相应题号后面!!!!!一、填空题:(24分每空1.5分)1.已知:int *p,a; 则语句p=&a;中的运算符&的含义是( 1 )。

2.凡在函数体内没有明显存储类别说明的变量是( 2 )。

3.已知:struct{ int k;char c;float a;}test; 则sizeof(test)的值是(3 )。

4.程序填空:(1)下面的程序是main函数利用函数abcd来交换main中的两个变量的值。

# include <stdio.h>main(){float x=10,y=20;abcd( 4 );printf(“%f,%f”,x,y);}abcd(x,y)( 5 );{float temp;temp=( 6 );( 7 );( 8 );}(2)下面的程序是使用冒泡法对输入的10个数据从小到大排序。

排好序的10个数分两行输出。

#include <stdio.h>main(){ ( 9 );int j,k;printf(“ input 10 numbers please \n”);for(j=0;( 10 );j++)scanf(“%f”,&a[j]);printf(“\n”);for(j=0;( 11 );j++)for(k=0;( 12 );k++)if( 13 ){ x=a[k];( 14 );a[k+1]=x;}printf(“The sorted 10 numbers:\n”);for(j=0;( 15 );j++){ if( 16 )printf(“\n”);printf(“%f\t”,a[j]);}printf(“\n”);}二、单项选择题:(20分每题2分)1.C语言中基本数据类型包括( )。

A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、实型2.已知int i,a; 执行语句”i=(a=2*3,a*5),a+6;”后,变量a的值是()。

哈工大苏小红版C语言课件cha

哈工大苏小红版C语言课件cha

C语言的特点和应用领域
系统软件
嵌入式系统
操作系统、编译器等核心软件都是用 C语言编写的。
在嵌入式系统中,C语言被广泛应用 于开发底层驱动程序和操作系统内核。
应用软件
数据库、游戏、图形界面等应用软件 也广泛使用C语言开发。
C语言的基本语法结构
数据类型
运算符
控制结构
包括整型、浮点型、字 符型、数组类型、结构
短整型通常占用2个字节,整型 占用4个字节,长整型占用8个 字节。
浮点型数据类型
浮点型数据类型用于 存储小数,包括单精 度浮点数和双精度浮 点数。
浮点型数据类型用于 存储实数,包括正实 数、负实数和零。
单精度浮点数通常用 float表示,双精度浮 点数通常用double 表示。
字符型数据类型
01
05 指针和内存管理
指针的定义和使用
01
02
03
04
指针是变量,用于存储 内存地址。
指针变量必须先定义后 使用。
使用指针前需要先赋值。
指针可以指向同类型的 变量或数组元素。
内存管理的基本概念
01
02
03
04
内存分为堆区和栈区。
堆区用于动态内存分配,由程 序员管理。
栈区用于存储局部变量,由系 统自动管理。
内存管理涉及内存的申请、使 用和释放。
动态内存分配和释放
使用`malloc()`函数在堆区分配内存。
使用`realloc()`函数调整已分配内存 的大小。
使用`calloc()`函数在堆区分配并初始 化内存。
使用`free()`函数释放已分配的内存。
06 文件操作
文件的打开和关闭
要点一
打开文件

哈工大 C语言实验报告(答案)

哈工大 C语言实验报告(答案)

实验1简单C 程序设计2、将下列由程序流程图描述的算法,转换为C 源代码并填写到图1-3b 框中,然后输入计算机并运行后并分析其运行结果(本小题2分)。

图1-3a 程序流程图图1-3bC 源程序3、项目编程(本小题12分)(1)请向计算机输入a,b,c 三个值,经过程序处理后,要求输出其中最大的一个。

/*C 语言源代码*/main(){}项目要求:①画出程序流程图;②根据流程图编写程序图1-4a 程序流程图图1-4b C 源程序(2)请向计算机输入a,b,c 三个值,经过程序处理后,要求按值从小到大输出。

项目要求:①画出程序流程图;②根据流程图编写程序/*输出最大值*/main(){}项目提示:①可采用if结构;②a,b,c由scanf函数输入程序流程图/*将a,b,c三个值由小到大输出*/main(){}1-5a程序流程图图1-5b C源程序(3)编程实现打印下列由字母组成的树形。

说明:本项目编程的知识点是让学生对双重循环语句结构的理解,清楚双重循环的特点(即当外循环变量中的值变化一次时,则内循环变量中的值要变化若干次)。

提示:可用外循环变量代表行数;内循环变量代表需打印字符的个数。

难点:①字符个数是按奇数变化递增②左右边界字符打印的位置图1-6a字母A-G组成的树形/*打印图形*/main(){}图1-6b C源程序(4)设计报选体育科目统计程序设某学校在新生入学时,需报选体育选修科目。

体育科目包括:篮球、排球、体操、兵乓球和网球。

请为某班级(30人)统计报选各体育科目人数。

项目要求:①画出程序流程图;②根据流程图编写源程序项目提示:可采用switch与for结构程序流程图C语言源代码main(){}图1-7a程序流程图图1-7b C 源程序实验2数组与排序五、项目编程(本题12分,每小题4分)1、将下列一组数读入到a 数组中,然后从a数组中找出其中最大的元素并与第一个数互换;然后从a数组中找出最小的元素并与最后一个数互换,而其余元素的位置不变。

哈工大C语言实验题

哈工大C语言实验题

Q308.(10分)第5章实验2:体型判断。

医务工作者经广泛的调查和统计分析,根据身高与体重因素给出了以下按“体指数”进行体型判断的方法。

体指数计算公式是:t = w /(h*h)其中:t是体指数;w是体重,其单位为千克;h是身高,其单位为米。

根据给定的体指数t计算公式,可判断你的体重属于何种类型:当 t<18 时,为低体重;当 18≤t<25 时,为正常体重;当 25≤t<27 时,为超重体重;当 t≥27 时,为肥胖。

****输入提示信息格式:"Please enter h,w:\n"****输入数据格式要求:"%f,%f"(先读入身高,再读入体重,身高以米读入,体重以千克读入)****输出数据格式要求:当 t<18 时,输出:"Lower weight!\n"当 18≤t<25 时,输出:"Standard weight!\n"当 25≤t<27 时,输出:"Higher weight!\n"当 t≥27 时,输出:"Too fat!\n"#include <stdio.h>#include <stdlib.h>main(){floatt,w,h;printf("Please enter h,w:\n"); scanf("%f,%f",&h,&w);t = w/(h*h);if(t<18)printf("Lower weight!\n");elseif(t>=18&&t<25)printf("Standard weight!\n");elseif(t>=25&&t<27)printf("Higher weight!\n");elseprintf("Too fat!\n");return0;}Q586.(10分)编写一个程序,输入年份和月份,判断该年是否是闰年,并根据给出的月份判断是什么季节和该月有多少天?(闰年的条件是年份能被4整除但不能被100整除,或者能被400整除;规定3~5月为春季,6~8月为夏季,9~11月为秋季,1、2和12月为冬季)。

哈工大C语言实验题

哈工大C语言实验题

哈工大C语言实验题————————————————————————————————作者:————————————————————————————————日期:ﻩQ308.(10分)第5章实验2:体型判断。

医务工作者经广泛的调查和统计分析,根据身高与体重因素给出了以下按“体指数”进行体型判断的方法。

体指数计算公式是:t = w/(h*h)其中:t是体指数;w是体重,其单位为千克;h是身高,其单位为米。

根据给定的体指数t计算公式,可判断你的体重属于何种类型:当t<18时,为低体重;当18≤t<25 时,为正常体重;当25≤t<27 时,为超重体重;当t≥27 时,为肥胖。

****输入提示信息格式:"Please enter h,w:\n"****输入数据格式要求:"%f,%f"(先读入身高,再读入体重,身高以米读入,体重以千克读入)****输出数据格式要求:当 t<18 时,输出:"Lower weight!\n"当18≤t<25 时,输出:"Standard weight!\n"当25≤t<27时,输出:"Higher weight!\n"当t≥27 时, 输出:"Too fat!\n"#include <stdio.h>#include <stdlib.h>main(){float t,w,h;printf("Please enter h,w:\n"); scanf("%f,%f",&h,&w);t = w/(h*h);if(t<18)printf("Lower weight!\n");else if(t>=18&&t<25)printf("Standardweight!\n");else if(t>=25&&t<27)printf("Higher weight!\n");elseprintf("Too fat!\n");return 0;}Q586.(10分)编写一个程序,输入年份和月份,判断该年是否是闰年,并根据给出的月份判断是什么季节和该月有多少天?(闰年的条件是年份能被4整除但不能被100整除,或者能被400整除;规定3~5月为春季,6~8月为夏季,9~11月为秋季,1、2和12月为冬季)。

哈工大苏小红版C语言课件cha

哈工大苏小红版C语言课件cha

哈工大苏小红版C语言课 件cha
欢迎来到哈工大苏小红版C语言课件。
课程介绍
本课程将为你提供C语言的全面介绍,从基本概念到高级应用,帮助你打下扎 实的编程基础。
概述
起源
C语言由贝尔实验室的Dennis Ritchie于20世纪70年代开发。
特点
它是一门通用的高级编程语言,具有简洁、高效和可移植等特点。
3
循环结构重复执Leabharlann 一段代码,直到满足退出循环的条件。
函数及参数传递
函数 参数传递
用于封装一段可重复使用的代码块。 可以通过值传递和指针传递实现参数的传递。
数组与指针
数组
用于存储相同类型的多个元素。
指针
存储变量的内存地址,可以通过指针访问和操作变量。
文件操作
使用C语言可以读取、写入和操作文件,实现文件的输入输出和处理。
应用
C语言在嵌入式系统、操作系统和编译器设计等领域广泛应用。
基本语法及数据类型
数据类型
包括整型、浮点型、字符型和数 组等。
变量
在使用变量之前需要声明其数据 类型。
运算符
用于执行基本的算术和逻辑操作。
程序控制结构
1
顺序结构
按照代码的编写顺序依次执行语句。
2
条件结构
根据条件的真假决定执行不同的语句块。

哈工大C语言Struct

哈工大C语言Struct
的字节数
11/24/2019
Structures
6
struct类型的特点
一个普通的类型
– 所以可以定义该类型的变量、数组、指针…… – 它的成员可以是任意类型
– 可以基做本函类数型的、参E数数v组类a、l型指u针和at、返io结回n构值o…类…n型ly. eated wisthtrAucspt类os型e.的Sl变id量es for .NET 3.5 Client Profile 5.2.0
C程E序valu设atio计n on语ly. 言
eated with Aspose.Slides for .NET 3.5 Client Profile 5.2.0
Copyright 20第046-章201结1 A构spose Pty Ltd.
孙志岗 sun@
从基本数据类型、复合数据类型 到抽象数据类型
计算机本身是没有数据类型的概念的 – 内存里存储的内容,你认为它代表什么,它就代表什么
高级语言设计了基本数据类型:整型、浮点型、字符
型等。不同的语E言v也al会ua定ti义on不o同n的ly基. 本类型
– 基本数据类型并不能方便地解决所有问题
eated wi复th合A数sp据o类se型.S是li基de本s数fo据r 类.N型E迭T代3派.5生C而li来ent Profile 5.2.0 –C典o型p的yr代ig表h就t 是2“00结4构-2”0,1数1组A、s指po针s也e可P算ty作L此t类d.
–C常o用p类yr型ight 2004-2011 Aspose Pty Ltd.
基本数据类型、指针、数组、结构……
– 常见的需要类型的地方
定义变量 定义指针、数组和结构 函数参数和返回值

哈尔滨工业大学C语言MOOC第12周编程题在线测试

哈尔滨工业大学C语言MOOC第12周编程题在线测试
现在要评选最牛群主已知有3名最牛群主的候选人分别是tomjack和rose有不超过1000人参与投票最后要通过投票评选出一名最牛群主从键盘输入每位参与投票的人的投票结果即其投票的候选人的名字请你编程统计并输出每位候选人的得票数以及得票数最多的候选人的名字
第12周编程题在线测试
1计算时间差V2.0(4分)
4)西部奖学金:期末平均成绩高于85分(>85)的西部省份学生每人均可获得1000元;
5)班级贡献奖:班级评议成绩高于80分(>80)的学生干部每人均可获得850元;
只要符合上述条件就可获得相应的奖项,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚明的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。
Input time two: (hour,minute):5,21↙
3hour,48minute
输入提示:"Input time one:(hour,minute):"
"Input time two: (hour,minute):"
输入格式: "%d,%d"
输出格式:"%dhour,%dminute\n"
s = n;
while (n--)
{
stu[count].scholarship = 0;
printf("Input name:");
scanf("%s", &stu[count].name);
printf("Input final score:");
scanf("%d", &stu[count].finalScore);

哈尔滨工业大学材料力学编程题c语言程序

哈尔滨工业大学材料力学编程题c语言程序

材料力学上机课程作业:C语言编写1一个力作用下的任意截面的弯矩,挠度。

程序:#include <stdio.h>#include<math.h>double Mz,l,a,x,v,E,I,b,F;main(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入长度a\n");scanf("%lf",&a);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入力F\n");scanf("%lf",&F);printf("请输入x\n");scanf("%lf",&x);b=l-a;if(x>0&&x<a){Mz=F*(l-a)*x/l;v=-F*b*x*(l*l-x*x-b*b)/(6*E*I*l);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}else if(x>a&&x<l){Mz=F*a*(l-x)/l;v=-F*b*(l/b*pow(x-a,3)+(l*l-b*b)*x-x*x*x)/(6*E*I*l);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}else{printf("數值溢出\n");}}运算结果:选取材料的L=1m,E=4.5GPa。

中国大学MOOC-哈工大-C语言程序设计精髓第六-十二周编程题答案

中国大学MOOC-哈工大-C语言程序设计精髓第六-十二周编程题答案

6.1 下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。

目前程序存在错误,请将其修改正确。

并按照下面给出的运行示例检查程序。

#include<stdio.h>#include <string.h>int main(){char score[100];int flag = 0, i, s;char grade;printf("Please input score:\n");while (1){flag=0;scanf("%s", score);for (i = 0; i < strlen(score); i++){if (score[i] >= '0' && score[i] <= '9'){continue;}else{flag = 1;break;}}s = atoi(score);if (s < 0 || s > 100 || flag == 1){printf("Input error!\n");printf("Please input score:\n");continue;}else{break;}}s = atoi(score);if (s >= 90){grade = 'A';}else if (s >= 80){grade = 'B';}else if (s >= 70){grade = 'C';}else if (s >= 60){grade = 'D';}else{grade = 'E';}printf("grade: %c\n", grade);return 0;}6.2 编程计算a+aa+aaa+…+aa…a(n个a)的值(4分)题目内容:编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。

哈工大(威海)c语言实验报告册答案

哈工大(威海)c语言实验报告册答案

实验1简单判定性问题求解一、实验学时完成本实验需4学时。

二、实验目的1、阅读程序题(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法;(2)掌握不同的类型数据之间赋值的规律;(3)掌握数据在内存中的存储方式;(4)学会输入、输出函数的基本格式和使用方法;(5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。

2、编程题(1)如何运用判定性结构进行程序设计;(2)如何运用判定性结构进行程序设计。

3、调试题(1)熟悉C程序的编辑、编译、连接和运行的过程。

三、实验指导为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。

1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。

2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。

要注意简单判定性问题的结构选择。

3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。

对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容1、阅读程序题(1)( ){ /*定义字符型变量*/c12; /*向字符变量赋以整数*/c1=97;c2=98;(" \n"12); /*以字符形式输出*/(" \n"12); /*以整数形式输出*/}该程序的输出结果是思考:可否改成 c1,c2;输出结果是?相同(2)(){75;("\n");}思考:若将语句中变为,可否输出分式的值?可以(3)(){9;; /*包含复合的赋值运算符的赋值表达式*/("\n");}思考:赋值表达式a+=a-=a+a的求解步骤?第一步:()9 第二步18(4)(){1;("\n");}出结果是思考:-1在内存中的存储形式?取反加一11111111111111111111111111111111(32个)(5)(){x1;1;x1; /*有符号数据传送给无符号变量*/(""1);}思考:(有符号赋值给无符号)(6)(){345;("\n",(!(a<b))(1));("");}思考:若将第一个语句中变为,结果将如何?1(换行)6(7)(){ 123;() ("\n");("\n");}该程序的输出结果是 1 。

哈工大 C语言程序设计精髓 MOOC慕课 6-12周编程题参考答案

哈工大 C语言程序设计精髓 MOOC慕课 6-12周编程题参考答案
}
printf(""\nTotal=%d\n"",s+b);
return 0;
}"
8.3"/*
一辆卡车违犯交通规则,撞人后逃跑。现场有三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位数学家,他说:四位的车号刚好是一个整数的平方。现在请根据以上线索帮助警方找出车号以便尽快破案。
#include <stdio.h>
int main(){
int i,j,k,m,tk,tm;
for (i=0;i<=9;i++){
for (j=0;j<=9;j++){
for (m=31;m<100;m++){
k = 1000*i + 100*i + 10*j + j;
if (i!=j && m*m==k){
}
else if (s >= 70)
{
grade = 'C';
}
else if (s >= 60)
{
grade = 'D';
}
else
{
grade = 'E';
}
printf(""grade: %c\n"", grade);
return 0;
}"
6.2"#include<stdio.h>
#include<math.h>
men=7,women=7,children=22

哈尔滨工业大学c语言实验

哈尔滨工业大学c语言实验

哈尔滨工业大学计算机科学与技术学院苏小红sxh@主教材:苏小红等,《C语言大学实用教程》,电子工业出版社,2004,8苏小红等,《C语言大学实用教程(第2版)》,电子工业出版社,2007,2实验教材:苏小红等,《C语言大学实用教程习题与实验指导》,电子工业出版社,2004,8苏小红等,《C语言大学实用教程学习指导》,电子工业出版社,2007,4实验内容问题1:要使下面程序的输出语句在屏幕上显示1,2,34,则从键盘输入的数据格式应为以下备选答案中的哪一个?#include <stdio.h>main(){char a,b;int c;scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%d\n",a,b,c);}A) 1 2 34 B) 1, 2, 34问题2:与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示1 2 34,则应修改程序中的哪条语句?怎样修改?#include <stdio.h>main(){char a,b;int c;scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%d\n",a,b,c);}练习——键盘输入与屏幕输出练习问题3:要使上面程序的键盘输入数据格式为1,2,34,输出语句在屏幕上显示的结果也为1,2,34,则应修改程序中的哪条语句?怎样修改?#include <stdio.h>main(){char a,b;int c;scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%d\n",a,b,c);}练习——键盘输入与屏幕输出练习问题4:要使上面程序的键盘输入数据格式为1,2,34,而输出语句在屏幕上显示的结果为’1’,’2’,34,则应修改程序中的哪条语句?怎样修改?–[提示:利用转义字符输出字符单引号字符。

C语言课后习题部分答案(哈工大)

C语言课后习题部分答案(哈工大)

第一章: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();}。

哈工程C语言教材课后答案

哈工程C语言教材课后答案

第一章1.2 有三个数A、B、C,设计算法,求三个数中最大的数并输出。

(可用自然语言或流程图表示)。

#include<stdio.h>void main(){int a,b,c,max;printf("please input three numbers:\n");scanf("%d%d%d",&a,&b,&c);max=a;if(b>a)max=b;if(c>max)max=c;printf("the answer is %d\n",max);}1.3 设计算法,求N个整数的平均值。

#include<stdio.h>void main(){int N,i;float aver,a,s=0;printf("please input the amount of the number:\n");scanf("%d",&N);for(i=0;i<N;i++){printf("please input the number\n");scanf("%f",&a);s=s+a;}aver=s/N;printf("the average is %f",aver);}第二章1. 填空题⑴换行、回车⑵整型变量_⑶整型⑷_6_⑸2.52. 选择题⑴_A_⑵_A_⑶A_⑷_B_⑸_D⑹C⑺ C ⑻ D ⑼ C ⑽ D ⑾B⑿D⒀ B ⒁ D3. ⑴答案:6,0,6⑵答案:8,10,16⑶答案:3.500000⑷答案:6⑸答案:1⑹答案:261⑺答案:16⑻答案:04. 编程题⑴输入长方形的长和宽,输出长方形的周长和面积。

#include<stdio.h>void main(){int a,b,l,s;scanf(―%d%d‖,&a,&b);l=(a+b)*2;s=a*b;printf(―%d,%d‖,l,s);}⑵输入一个字符,输出其ASCII代码。

哈工大C语言课件

哈工大C语言课件

2024/4/5
main() { …① …
a 函数 {③ ②
b();
b函数 {
④ …
a(); ⑦
⑥… ⑤ …
return; return;
}
}
}
30/78
7.4 递归函数〔Recursive Function〕
递归问题的提出 经典的汉诺塔〔Hanoi〕问题 理解递归的概念 有人曾计算过,当n=64时,所需移动
计制造/现成的标准产品 Moe
Curly
2024/4/5
7/78
7.2 函数〔Function〕的定义
假设干相关的函数可以合并成一个“模块〞 一个C程序由一个或多个源程序文件组成 一个源程序文件由一个或多个函数组成
2024/4/5
8/78
函数的分类
函数生来都是平等的,互相独立的,没有 上下贵贱和附属之分 main()稍微特殊一点点 C程序的执行从main函数开始 调用其他函数后流程回到main函数 在main函数中结束整个程序运行
【例7.2】 计算整数n的阶乘n! 如何使函数具有遇到不正确使用或非法数据输入时 防止出错的能力,增强程序的健壮性? 在函数的入口处,检查输入参数的合法性
2024/4/5
20/78
防御性程序设计〔Defensive Programming〕
【例7.2】计算整数n的阶乘n! 如何使函数具有遇到不正确使用或非法数据输入时 防止出错的能力,增强程序的健壮性? 在函数的入口处,检查输入参数的合法性
2024结/4/5 构化〔Structural〕
6/78
7.2 函数〔Function〕的定义
函数是C语言中模块化编程的最小单位
可以把每个函数看作一个模块〔 Module 〕

程序设计语言实验指导书12版

程序设计语言实验指导书12版

《程序设计语言》实验指导书徐东燕编北方民族大学计算机科学与工程学院2012年9月目录实验一 C语言编程环境熟悉及简单程序的编写(验证型实验,2学时) (3)实验二分支结构程序设计(设计型实验,2学时) (6)实验三循环结构程序设计(设计型实验,2学时) (8)实验四函数程序设计(设计型实验,2学时) (10)实验五数组程序设计((设计型实验,2学时) (12)实验六指针程序设计(设计型实验,2学时) (14)实验七结构体程序设计(设计型实验,2学时) (15)实验八程序结构与递归函数(综合性实验,2学时) (16)实验九指针进阶及综合程序设计(综合型实验,2学时) (17)实验十文件的程序设计(设计型实验,2学时) (18)参考文献 (20)课程编号:11101203 课程类别:专业基础课适用专业:计算机科学与技术、软件工程、网络工程、信管专业课程总学时:76 实验课学时:20开设实验项目数:10实验一C语言编程环境熟悉及简单程序的编写(验证型实验,2学时)一、实验目的与要求实验环境1.熟悉Cfree开发环境或Visual C++ 6.0的使用环境;2.掌握Cfree开发环境或Visual C++ 6.0环境下建立C程序的步骤;3.掌握C程序在Cfree开发环境或Visual C++ 6.0环境下的编辑、调试和运行的步骤、方法;4.理解C程序的一般结构;5.理解并掌握程序的顺序结构程序设计;6.在Cfree开发环境或Visual C++ 6.0环境下编写并运行基本的C程序;7.理解程序调试思想,能修改简单的C语法错误;8.掌握算术、赋值表达式,输入输入语句和简单数据处理方法。

二、实验环境1.微机每人一台,要求PⅢ以上处理器。

2.windows2000/xp操作系统。

3.Cfree开发环境或或Visual C++ 6.0开发环境。

三、实验预习与准备1.计算机基本操作练习。

2.Cfree开发环境或Visual C++ 6.0软件使用预习。

2022年哈尔滨工程大学公共课《C语言》科目期末试卷A(有答案)

2022年哈尔滨工程大学公共课《C语言》科目期末试卷A(有答案)

2022年哈尔滨工程大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、设x为无符号整数。

表达式x^(~(~0<<n)<<(p+1-n)))的作用是将x 中从第p位开始的n位求反(1变0,0变1),其他位不变。

请按表达式的求值顺序写出分解步骤,并解释含义。

__________________________________2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。

4、若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为_______5、已知字母a的ASCIl码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-3'的值为_______。

6、设main函数的说明为:int main(int argc,char*argv[]),且有命令行为:FILE1123<回车>,则argc的值是_______,argv[1]的值是_______。

7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。

函数中错误的部分是_______,改正后为_______。

void add(float a,float b){float c;c=a+b;return c;}8、设有如下结构体说明:struct ST{int a;float b;struct ST*c;doublex[3];}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。

_______9、若有以下定义和语句,为使变量c1得到字符’A',变量c2得到字符’B’,正确的输入形式是_______。

char cl,c2;scanf("%4c%4c",&cl,8&c2);10、若有定义:doublex[3][5];,则x数组中行下标的下限为_______,列下标的上限为_______。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

17/60
【例12.1】 若要从键 盘输入结 构体变量 stu1的内 容,那么 程序如何 修改?
2020/1/15
结构体成员的地址与 该成员在结构体中所 处的位置及其所占内 存的字节数相关
结构体变量的地址 &stu2是该变量所占 内存空间的首地址
第19页/共59页
18/60
12.2.7结构体所占内存的字节数
在高级语言引入了基本数据类型 – 整型、浮点型、字符型等 – 不同语言会定义不同的基本类型 – 基本数据类型并不能方便地解决所有问题
有些语言(如PL/1)中试图规定较多的类型, 如数组、树、栈等,但实践证明不是个好办法
2020/1/15
2/60
第3页/共59页
12.1从基本数据类型到抽象数据类型
2020/1/15
3/60
第4页/共59页
12.2.1为什么要定义结构体类型
在程序里表示一个人(姓名、年龄、性别…), 怎么表示?
想表示多个人呢? 如何用计算机程序实现下述表格的管理?
2020/1/15
4/60
第5页/共59页
数组的解决方法
2020/1/15
5/60
第6页/共59页
数组的解决方法
12.1从基本数据类型到抽象数据类型
二进制数——类型本不存在 – 内存里存的内容,你认为它是什么,它就
是什么
– 在早期的机器指令及汇编语言中,数据对
象均用二进制数表示,没有类型的概念
一般的CPU只支持两种类型 – 整数、浮点数
2020/1Biblioteka 151/60第2页/共59页
12.1从基本数据类型到抽象数据类型
2020/1/15
12
第20页/共59页
19/60
12.2.7结构体所占内存的字节数
ch
f
ch
ch
f
ch
事实上,所有数据类型在内存中都是从偶数地址开始存放的
且结构所占的实际空间一般是按照机器字长对齐的
不同的编译器、平台,对齐方式会有变化
结构体变量的成员的存储对齐规则是与机器相关的
具有特定数据类型的数据项大小也是与机器相关的
程序 设计
83
90
82
2 李小明 M 1992 8 20 88
92
78
78
3 王丽红 F 1991 9 19 98
72
89
66
4 陈莉莉 F 1992 3 22 87
95
/*It works!*/
2020/1/15
12/60
第13页/共59页
12.2.4结构体变量的初始化
等价于 等价于
2020/1/15
第14页/共59页
13/60
12.2.5嵌套的结构体
嵌套的结构体(Nested Structure)就是在一个 结构体内包含了另一个结构体作为其成员
结构体定义 可以嵌套
2020/1/15
6/60
第7页/共59页
数组的解决方法
数据的内存管理方式
分配内存不集中,寻址效率不高
对数组赋初值时,易发生错位
2020/1/15
结构显得零散,不易管理
7/60
第8页/共59页
希望的内存分配图
2020/1/15
8/60
第9页/共59页
结构体类型的声明
声明了一个结构体类型
结构体的名字 称为结构体标 签(Structure Tag) 构成结构体的变量 称为结构体的成员
(Structure Member)
2020/1/15
9/60
第10页/共59页
结构体类型的声明
Don’t forget the
semicolon!!
2020/1/15
结构体模板
(Structure Template)
形成一个类型声明的样板 用于生成结构体变量 但并未声明结构体变量 因而编译器不为其分配10内/60存
2020/1/15
第15页/共59页
14/60
12.2.6结构体变量的引用
访问结构体变量的成员必须使用成员选择运算符 (也称圆点运算符)
当出现结构体嵌套时,必须 以级联方式访问结构体成员
2020/1/15
第16页/共59页
15/60
12.2.6结构体变量的引用
【例12.1】演示结构体变量的赋值和引用方法
struct 类型用内存字节数 = ? 是所有成员变量的内存总和吗?
用运算符sizeof获得结构体大小 sizeof(变量或表达式) sizeof(类型)
【例12.2】
printf("%d\n", sizeof(struct sample)); printf("%d\n", sizeof(SAMPLE));
按结构体的成员顺序逐 一对相应成员进行赋值
格式符%02d中2d前面的前导符0表示输
出数据时,若左边有多余位,则补0
2020/1/15
16/60
第17页/共59页
【例12.1】 若要从键 盘输入结 构体变量 stu1的内 容,那么 程序如何 修改?
2020/1/15
两个地址有何不同?
第18页/共59页
用户自己构造数据类型-复合数据类型 – 由基本数据类型迭代派生而来,表示复杂的数据对象
典型的代表就是“结构体”
抽象数据类型(Abstract Data Type,简称ADT) – 在复合数据类型基础上增加了对数据的操作
抽象数据类型进而进化为“类(Class)” – 这是一个跨时代的进步 – Class是Object-Oriented的一个重要概念
STUDENT与struct student类型是同义词
struct student stu1, stu2;/*It works*/
student stu1, stu2;
/*Can this work?*/
struct stu1, stu2;
/*Can this work?*/
STUDENT stu1, stu2;
所以一个结构体在内存中的存储格式也是与机器相关的
2020/1/15
20/60
第21页/共59页
12.3结构体数组的定义和初始化
2020/1/15
第22页/共59页
21/60
12.3结构体数组的定义和初始化
学号 姓名 性别
出生日期 年 月日
数学
1 王 刚 M 1991 5 19 72
英语
计算机 原理
第11页/共59页
12.2.2结构体变量的定义
(1)先定义结构体类型,再定义变量名
(2)在定义类型的同时定义变量 (3)直接定义结构体变量(不指定结构体标签)
2020/1/15
第12页/共59页
11/60
12.2.3用typedef定义数据类型
关键字typedef为一种 已存在的类型定义一个 别名,并未定义新类型
相关文档
最新文档