C语言 实验五、数组程序设计解答

C语言 实验五、数组程序设计解答
C语言 实验五、数组程序设计解答

C语言实验五、数组程序设计解答

实验五数组应用,二, 一、实验目的

1(掌握二维数组的定义和初始化。

2(掌握二维数组元素的引用及其应用。

3(掌握字符数组的定义和初始化。

4(掌握字符数组元素的引用及其应用。二、实验内容

1([目的]掌握二维数组的输出方法。

[题目内容]已知有二维数组a的定义:int

a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};编程序~以三行四列的形式输出a数组。

[输入]无

[输出]

1 2 3 4

5 6 7 8

9 10 11 12

[提示] 利用二重for循环结构与printf()。 #include <> void main() {

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

int i,j;

printf("二维数组:\n");

for(i=0;i<3;i++)

{

for(j=0;j<4;j++)

printf("%6d",a[i][j]);

printf("\n");

}

}

2([目的]掌握二维数组的输入、输出方法。 [题目内容]已知有一个3行2列的二维数组: 89 76

67 98

54 78

编程序~从键盘输入数据存储在二维数组中~并以3行2列的形式输出。

[输入]89~76~67~98~54~78

[输出]

89 76

67 98

54 78

[提示] 利用二重for循环结构与scanf()、printf()及%4d格式输出。

#include <>

void main()

{

int a[3][2];

int i,j;

printf("请输入3行2列二维数组:\n");

for(i=0;i<3;i++)

for(j=0;j<2;j++)

scanf("%d",&a[i][j]);

for(i=0;i<3;i++)

{

for(j=0;j<2;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

3([目的]掌握二维数组的输入、输出、处理方法。 [题目内容]编程序~生成一个5行5列的二维矩阵~并输出。

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

[输入]无

[输出]

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

[提示]利用for循环结构~生成原则:行下标与列下标相同的数组元素为1~其余为0。%4d格式输出。

#include <> void main()

{

int a[5][5];

int i,j;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

if(i==j) a[i][j]=1;

else a[i][j]=0;

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

4([目的]运用所学知识解决矩阵转置问题。

×2矩阵~编程序~将a矩阵转置~生成矩阵b,2×3,~[题目内容]设a矩阵是3并输出。

[输入]a矩阵

[输出]b矩阵

[提示]利用不同矩阵行列下标的关系。,b=a, iiji#include <> void main()

{

int a[3][2],b[2][3];

int i,j;

printf("请输入a数组:\n");

for(i=0;i<3;i++)

for(j=0;j<2;j++)

scanf("%d",&a[i][j]);

for(i=0;i<3;i++)

for(j=0;j<2;j++)

b[j][i]=a[i][j];

printf("a数组:\n");

for(i=0;i<3;i++)

{

for(j=0;j<2;j++)

printf("%4d",a[i][j]);

printf("\n");

}

printf("b数组:\n");

for(i=0;i<2;i++)

{

for(j=0;j<3;j++)

printf("%4d",b[i][j]);

printf("\n");

}

}

5([目的]运用所学知识解决矩阵相乘问题。 [题目内容]设a矩阵是3×2矩阵~b 矩阵是2×3矩阵~满足矩阵相乘条件~编

程序~将a矩阵×b矩阵生成c矩阵,3×3,~并输出。 [输入]a矩阵、b矩阵

[输出] c矩阵

2

c,a,b,ijikkj[提示]计算公式: ,1k

#include <>

void main()

{

int a[3][2],b[2][3],c[3][3]={0}; int i,j,k;

printf("请输入a数组:\n"); for(i=0;i<3;i++)

for(j=0;j<2;j++)

scanf("%d",&a[i][j]);

printf("请输入b数组:\n"); for(i=0;i<2;i++)

for(j=0;j<3;j++)

scanf("%d",&b[i][j]);

for(i=0;i<3;i++)

for(j=0;j<3;j++)

for(k=0;k<2;k++)

c[i][j]=c[i][j]+a[i][k]*b[k][j]; \n"); printf("a数组:

for(i=0;i<3;i++)

{

for(j=0;j<2;j++)

printf("%4d",a[i][j]);

printf("\n");

}

printf("b数组:\n");

for(i=0;i<2;i++)

{

for(j=0;j<3;j++)

printf("%4d",b[i][j]);

printf("\n");

}

printf("c数组:\n");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%4d",c[i][j]);

printf("\n");

}

}

6([目的]运用所学知识解决矩阵问题。

[题目内容]设有一个5×5方阵~编程序~判断该方阵是否为对称矩阵。并输出判断结果。

[输入] 5×5方阵

[输出] 判断结果

[提示] 如果矩阵中的每个元素都满足array[i][j]=array[j][i]~则称这个矩阵为对称矩阵。

#include <>

void main()

{

int a[5][5];

int i,j,flag=0;

\n"); printf("请输入5*5数组:

for(i=0;i<5;i++)

for(j=0;j<5;j++)

scanf("%d",&a[i][j]);

for(i=0;i<5;i++)

for(j=0;j<5;j++)

if(a[i][j]!=a[j][i]) flag=1;

printf("a数组:\n");

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%4d",a[i][j]);

printf("\n");

}

if(flag==0) printf("是对称矩阵。\n");

else printf("不是对称矩阵。\n");

}

6([目的]运用所学知识解决矩阵问题。

[题目内容] 设有一个3行5列的二维数组~编写程序从键盘输入数据~建立这个二维数组~并找出二维数组中的鞍点。

[输入] 3×5矩阵

[输出] 鞍点

[提示]鞍点是指在行上是最大但是所在列最小的元素,这样的元素可能不存在,。#include <>

void main()

{

int a[3][5];

int i,j,k,m,max,flag;

printf("请输入3*5数组:\n");

for(i=0;i<3;i++)

for(j=0;j<5;j++)

scanf("%d",&a[i][j]);

printf("a数组:\n");

for(i=0;i<3;i++)

{

for(j=0;j<5;j++)

printf("%4d",a[i][j]);

printf("\n");

}

for(i=0;i<3;i++)

{

max=a[i][0];

for(j=0;j<5;j++)

if(a[i][j]>max) {max=a[i][j];k=j;}

for(m=0;m<3;m++)

if(a[m][k]

else flag=0;

if(flag==0) printf("鞍点是:a[%d][%d]=%d\n",i,k,a[i][k]);

}

}

7([目的] 运用所学知识解决实际问题。

[题目内容] 如下数据表显示了4个销售人员所售的3种物品的数量。

物品1 物品2 物品3 销售人员1 310 275 365

销售人员2 210 190 325

销售人员3 405 235 240

销售人员4 260 300 380

请使用二维数组编写程序~计算并显示以下信息: ,1,每个销售人员的销售总值,2,每种物品的销售总值

,3,所有销售人员销售的全部物品的总值

[输入] 销售数据表数据

[输出] 计算结果

[提示] 建立一个5×4的二维数组

#include <>

void main()

{

int a[5][4];

int i,j;

printf("请输入4*3数组:\n"); for(i=0;i<4;i++)

for(j=0;j<3;j++)

scanf("%d",&a[i][j]);

printf("原数组:\n");

for(i=0;i<4;i++)

{

for(j=0;j<3;j++)

printf("%4d",a[i][j]);

printf("\n");

}

for(j=0;j<3;j++)

{

a[4][j]=0;

for(i=0;i<4;i++)

a[4][j]=a[4][j]+a[i][j];

}

for(i=0;i<5;i++)

{

a[i][3]=0;

for(j=0;j<3;j++)

a[i][3]=a[i][3]+a[i][j];

}

printf("所求数组:\n");

for(i=0;i<5;i++)

{

for(j=0;j<4;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

8([目的] 运用所学知识解决实际问题。

设某班有20个学生~每个学生选修了三门课~编写程序~输入20[题目内容] 个学生三门课的成绩~计算每个学生的平均成绩~最后输出每个学生三门课的成

绩及平均成绩。

[输入] 20个学生三门课的成绩

[输出] 每个学生三门课的成绩及平均成绩 [提示] 建立一个20×4的二维数组#include <> void main()

{

int a[20][4];

int i,j;

printf("请输入20*3数组:\n");

for(i=0;i<20;i++)

for(j=0;j<3;j++)

scanf("%d",&a[i][j]);

printf("原数组:\n");

for(i=0;i<20;i++)

{

for(j=0;j<3;j++)

printf("%4d",a[i][j]);

printf("\n");

}

for(i=0;i<20;i++)

{

a[i][3]=0;

for(j=0;j<3;j++)

a[i][3]=a[i][3]+a[i][j];

}

printf("所求数组:\n");

for(i=0;i<20;i++)

{

for(j=0;j<4;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

9([目的] 运用所学知识解决实际问题。 [题目内容] 编写程序~生成并输出杨辉三角形,10行,。 [输入] 无

[输出] 杨辉三角形

[提示] 初值:int a[10][10]={{1},{1,1}}

#include <> void main()

{

int a[10][10]={{1},{1,1}};

int i,j;

for(i=2;i<10;i++)

{

a[0][i]=1;a[i][i]=1;

for(j=0;j<10;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

printf("所求:\n");

for(i=0;i<10;i++)

{

for(j=0;j<=i;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

10([目的] 运用所学知识解决实际问题。 [题目内容] 编写程序~按要求填充5×5矩阵~并输出。 ,1, 左上三角为+1

,2, 右下三角为-1

,3, 从右到左的对角线为0

[输入] 无

[输出] 要求填充的5×5矩阵[提示]

#include <> void main() {

int a[5][5];

int i,j;

for(i=0;i<5;i++)

{

for(j=0;j<4-i;j++)

a[i][j]=+1;

}

for(i=0;i<5;i++)

{

for(j=4-i;j<5;j++)

a[i][j]=-1;

}

for(i=0;i<5;i++)

{

a[4-i][i]=0;

}

printf("所求:\n");

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

11([目的] 掌握字符数组的定义、初始化、输出。 [题目内容] 编写程序~定义一个字符数组并赋初值“Happy New year:”~输出

这个字符串。

[输入] 无

[输出]字符串

[提示]使用for循环结构输出

#include <> void main()

{

char ch[15]={'H','a','p','p','y',' ','N','e','w',' ','y','e','a','r','!'};

int i;

for(i=0;i<15;i++)

printf("%c",ch[i]);

printf("\n");

}

12([目的] 掌握字符数组的定义、初始化、处理、输出。

[题目内容] 编写程序~定义一个字符数组并赋初值“Happy New year:”~将其中的小写字母转换成大写并输出处理后的字符串。 [输入] 无

[输出] 处理后的字符串

[提示]逐个判断数组中的各元素是否小写字母~是则转换成大写字母,ASCII值-32,~不是则不做处理,使用for循环结构输出。 #include <>

void main()

{

char ch[15]={'H','a','p','p','y',' ','N','e','w',' ','y','e','a','r','!'};

int i;

for(i=0;i<15;i++)

{

if(ch[i]>='a'&&ch[i]<='z') ch[i]=ch[i]-32;

printf("%c",ch[i]);

}

printf("\n");

}

。 13([目的] 掌握字符数组的定义、字符串的输入与输出[题目内容] 编写程序~定义一个字符数组~从键盘输入你姓名的全拼音字符串~

存储到已经定义好的字符数组中~最后输出你姓名的全拼音字符串。

你姓名的全拼音字符串 [输入]

[输出] 你姓名的全拼音字符串

[提示]使用标准库函数gets()、puts()。

#include <>

void main()

{

char name[11];

printf("请输入你的姓名:");

gets(name);

printf("你输入的姓名是:");

puts(name);

}

14([目的] 掌握字符串的处理、输出。

[题目内容]编写程序~定义两个字符串变量~使用输入函数为其赋值~将两个字

符串连接起来并输出,不用strcat函数,。 [输入]两个字符串

[输出] 连接后的字符串

[提示] 逐个字符进行处理~使用while循环结构以及字符串的结束标志’\0’。

#include <>

void main()

{

char a[50],b[20];

int i,j;

printf("输入第一个字符串:\n");

gets(a);

printf("输入第二个字符串:\n");

gets(b);

i=0;

while(a[i]!='\0')

{

i++;

}

j=0;

while(b[j]!='\0')

{

a[i]=b[j];

i++;

j++;

}

a[i]='\0';

printf("所求:\n");

i=0;

while(a[i]!='\0')

{

printf("%c",a[i]);

i++;

}

printf("\n"); }

15([目的] 掌握字符串的处理、输出。 [题目内容]编写程序~输入一个字符串和一个单个字符~在输入的字符串中删除

所有的单个字符。

例如:从字符串nedtworkdtou中删除d的情况。删除前

n e d t w o r k d t o u \0

删除后

n e t w o r k t o u \0

[输入] 一个字符串和一个单个字符 [输出] 删除后的字符串

[提示] 逐个字符进行处理

#include <> void main()

{

char a[50],b;

int i,j;

printf("输入一个字符串:\n");

gets(a);

printf("输入一个待删除的字符:\n"); scanf("%c",&b);

i=0;

while(a[i]!='\0')

{

printf("%c %c\n",a[i],b);

if(a[i]==b)

{

j=i;

while(a[j]!='\0')

{

a[j]=a[j+1];

j++;

}

}

i++;

}

a[i]='\0';

:\n"); printf("所求

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

C语言程序设计习题答案(1-5章)

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。 4. 求1×2×3×…×10的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

完整word版单片机C语言应用程序设计第五版马忠梅课后习题答案

第一章单片机由哪几部分组成?、80511可P2P0和个8位并行I/O口(其中8位中央处理器CPU、片内振荡电器及其时钟电路,4,个中断优先级)个中断源(具有2位定时器/计数器,5 用于外部存储器的扩展),2个16 全双工串行口,布尔处理器。单片机有多少个特殊功能寄存器?它们可以分为几组,各完成什么主要功能?、80512 表P7 1-3个特殊功能寄存器,在物理 上是分散在片内各功能部件中,在数218051单片机内部有答:中,以便能使用统一的直接寻址方式80H~FFH学上把它们组织在内部数据存储器地址空间来访问。这些特殊功能寄存器颁 在以下各个功能部件中:主要完;DPH两个8位寄存器组成)PSW、SP、DPTR(由DPL和(1)CPU:ACC、B、成运算和逻辑判断功能;完成中断管理IP、IE;(2)中断系统:完成 定时或者计数功能、TH1;TCOM、TL0、TH0、TL1(3)定时器/计数器:TMOD、口带有可选的纵向拓展I/O完成I/O口功能,其中部分P1P0、、P2、P3(4)并行I/O口:功能。主要完成数据的串行发送和接收SBUF、PCON5)串行口:SCON、(、决定程序执行顺序的寄存器是哪几个?它是几位寄存器?是否为特殊功能寄存器?它的3 内容是什么信息?它的内容是下一条 将要执行的不是特殊功能寄存器,它是16位寄存器,是程序计数器PC,程序的地址的用途是什么?它由哪几个特殊功能寄存器组DPTRDPTR是什么特殊功能寄存器?4、成?位)和8DPL (数据指针低是16位数据指针寄存器,它由两个8位特殊功能寄存器DPTR位地址,作地址寄存器用,可寻址外部16DPTR用于保存DPH(数据指针高8位)组成,数据存储器,也可寻址程序存储器。线?它们和单片机对外的地址总线和数据总线有什么关系?地址的引脚有多少I/O5、8051 总线和数据总线各是多少位?线可以在外扩存储器时分时复根I/OP0口8I/O8051单片机的40个引脚中有32根口线,和P3.6位地址总线,P2口作为高8用作为外部存储器的低8位地址 总线和8位数据总线,位。16位,数据总线为8P3.7分别作为外部存储器的写和读控制线。地址总线单片机堆栈的最大容量不能超过多少字8051、什么是堆栈?堆栈指针SP的作用是什么? 6 节?堆栈是数据寄存器的一部分,这一部分数据的存取是按照先入后出、后入先出的原则进行的。堆栈指针SP在启用堆栈之前是用来决定堆栈的位置。如在8051芯片复位后,SP的值为07H,则决定了堆栈从08H开始设置。修改SP值可以使堆栈设置在内部RAM的其它部分。在堆栈启 用之后,SP指向堆栈顶部,即由SP来决定数据读出和存入堆栈的地址。8051单片机内部用作 数据区的RAM的容量为128个字节,前8个字节要用来作为工作寄存器R0-R7。堆栈可以从08H开始设置直到7FH,共120个字节。但这只是最大可能的容量。一般情况下,内部RAM还要分出一部分作一般的数据区,或者还要用其中的位寻址区来用于位操作,等等。所以,8051 的堆栈区是比较小的,使用时要注意到这个限制。 8、8051内部RAM低128字节可分为几个区域?其中通用寄存器区的字节地址范围为多少?如何实现寄存器组的切换?可位寻址区的字节地址和位地址范围分别为多少? 8051内部RAM的低128字节可以分为通用寄存器区、位寻址区、便签(工作或者堆栈RAM)1 中的个字节。设置PSW区和特殊功能寄存器区。通用寄存器区的地址从00H到1FH共3212816个字节RS1可以切换当前通用寄存器组。位寻址区地址从20H到2FH共位RSO和127. 0到位,占用地址8051单片机对外有几条专用控制线?其功能是什么?9、,高电位有效,当有条专用控制线。它们是复位信号线RST一般的说法是8051单片机有4,低电平有效,当此复位信号从此线输入时,使单片机复位。访问外部存贮器控制信号EA先使用片单片机全部使用外部指令存贮器,而当此控制线为高电平时,控制线为低电平时,1000H(地址为,在4KB范围之外,才使用指令存贮器FFFFH内的4KB指令存贮器(0000H-)和外部地址锁存器允PSEN-FFFFH)。另有两条输出控制:外部程序存贮器的读选通信号。前者是低电平有效,在读外部程 序存贮器时使用。后者是高电平有效,在锁存ALE许信号P0口输出的低8位地址时使用。端必须怎样处理?为什么?10、8031的/EA为有效时,/EA访问内部ROM,当端是访问外部程序

C语言程序设计经典必背程序

C语言程序设计典型编程必背 1.计算机1-3+5-7+。。。-99+101的值 #include main ( ) { int i,t=1,s; s=0; for(i=1;i<=101;i+=2) { t=t*i; s=s+t;t=t>0?-1:1; } printf(“%d\n”,s); } 2.输入一个十进制数,将他对应的二进制数的各位反序,形成新的十进制数输出。11—1011—1101—13 #include main ( ) { int n,x,t; printf(“shuruzhengshu:”); scanf(“%d”,&n); x=0; while(n!=0) { t=n%2; x=x*2+t;n=n/2; } printf(“xindezhengshu:%d\n,x”); } 3.给出年月日,计算出该日是该年的第几天。 #include main ( ) { int year,month,day,days,i,d; printf(“shuru nian,yue,ri:”); scanf(“%d,%d,%d”,&year,&month,&day); days=0; for(i=1;i

case 7: case 8: case 10: case 12:d=31;break; case 4: case 6: case 9: case 11:d=30;break; case 2:if(year%4==0&&year%100!=0||year%400==0) d=29; else d=28; } days+=d; } printf(“%d nian %d yue %d ri shigainiande %d tian。\n”,year,month,day,days+day); } 4.求100——200间的素数。按每行10个数打印输出。要求在奇数中找素数。 #include main ( ) { int m,k,i,n=0; for(m=101;m<=200;m=m+2) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>k+1) { printf(“%d”,m);n=n+1; } if(n%10==0) printf(“\n”); } printf(“\n”); } 5.下面的程序功能是求1!+3!+5!+。。。+n!的和。 #include main ( ) { long int f,s; int i,j,n;s=0;

c语言程序设计第五版习题答案()

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100;

a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。 #include <> main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** *

C语言数组编程题

实验4 数组 一.实验目的: 1.掌握一维数组的定义、赋值和输入输出的方法; 2.掌握字符数组定义、初始化、赋值的方法; 3.了解常见的字符串函数功能及其使用方法; 4.掌握二维数组的定义与引用。 二.实验内容: 1.编写程序,输入10个整数存入一维数组,统计输出其中的正数、负数和零的个数。 2.编写程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。 3.编写程序,输入10个整数存入一维数组,对其进行升序排序后输出。 4.编写程序,求二维数组中元素的最大值和最小值。 5.编写程序,求一个4×4矩阵中所有元素之和。 6.编写程序:从键盘上输入一字符串,统计输出该字符串中的字母字符、数字字符、空格以及其他字符的个数。 7.编写程序:从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样,如“abcd dcba”)。 8. 产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。 9. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按原来的规律将其插入并输出。 页脚内容1

10. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,则输出找不到。 11. 找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。 12. 编程输出杨辉三角。(要求输出10行)(杨辉三角:每行端点与结尾的数为1.每个数等于它上方两数之和。每行数字左右对称,由1开始逐渐变大) 13. 输入一行字符,统计大写字母、小写字母、数字、空格以及其它字符个数。 14. 编写程序,将两个字符串连接起来,不用strcat。 15. 编写程序实现strcpy函数功能。 16. 编程实现strlen函数功能。 17. 编程求2-4+6-8…-100+102的值。 18. 假设某人有100,000现金。每经过一次路口需要进行一次交费。交费规则为当他现金大于50,000时每次需要交5%如果现金小于等于50,000时每次交5,000。请写一程序计算此人可以经过多少次这个路口。 19. 输入若干个正整数,以0结束,将其中大于平均值且个位为5的数排序后输出。(按由大到小的顺序排序) 20. 输入一个字符串,将其中ASCII码值为基数的字符排序后输出。(按由小到大的顺序) 21. 输入一个以回车结束的字符串(少于80个字符),滤去所有的非16进制字符后,组成一个新字符串(16进制形式),然后将其转换为10进制数后输出。 22. 读入一个正整数n(1<=n<=6),再读入n阶矩阵,计算该矩阵除副对角线、最后一行、最后一列 页脚内容2

第5章-C语言程序设计(第2版)教材习题答案

【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。2011年10月第二版。ISBN:978-7-302-26972-4。售价:35元。 【答案版本】本习题答案为2012年2月修订版本。 一、选择题 1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。 A. while循环执行10次 B. 循环是无限循环 C. 循环体语句执行一次 D. 循环体语句一次也不执行 2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。 A. 运行程序段后输出1 B. 程序段执行无限次 C. 运行程序段后输出0 D. 程序段中的控制表达式是非法的 3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。 A. int a=1,b=2; while(b--); B. int a=1,b=2; do a++; while(a==b); C. int a=1,b=2; while(a=3); D. int a=1,b=2; do b-- while(b==0); 4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。 do{ printf(“%d\n”,i--); } while(i!=0); A. 0 B. 1 C. 5 D. 无限 5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。 A. 0 B. 5 C. 10 D. 无限 6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。 A. break语句用于循环体内,它将结束该循环 B. break语句用于开关语句,它结束该开关语句 C. break语句用于if语句的内嵌语句内,它结束该if语句 D. break语句在一个循环体内可使用多次 7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。 A. 循环体内可以包含有循环语句 B. 循环体内必须同时出现break语句和continue语句 C. 循环体内可以出现选择语句 D. 循环体可以是空语句 8. 以下不是死循环的是D)for(;(c=getchar()!=’\n’);)printf(“%c”,c);。 A. for(; ; x+=i); B. while(1) { x++; } C. for( i=10; ; i--) sum+=i; D. for( ; (c=getchar() )!=’\n’ ; ) printf( “%c”,c); 9. 执行语句”for(i=0;i++<3;);”后,变量i的值为C) 4。 A.2 B. 3 C. 4 D. 5 10.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C)循环4次。 A. 无限循环 B. 循环次数不定 C. 循环4次 D. 循环3次

标准C语言程序设计第五版课后练习题答案

课后练习题答案 Chapter 1 1.1×√×√√×√××√ 1.2b c 1.3ad 1.4semicolon printf math、h \n Chapter 2 2、1 ×√××√√×√××√× 2、2 typedef 255 external const Chapter 3 3、1 ×√××√√×××√√√ 3、2 integer modula 6 logical sizeof paratheses typeconversion precedence 3、3 F F T F F F 3、4 F T T T F 3、5 (b) (c) 3、6 0 -2 7 10、25 false 3 3 1 3、10 0 1 1 1 1 3、11 d } 100 3、12 110 111 3、13 1 3、14 200 3、15 x<=y 3、16 TRUE 3、19 2 1 4 3、20 -40 40 Chapter 4 4、1 ×√√√√√××√√√× 4、2 %hd %x ctype、h %l %*d [^] blank 6 - %e 4、4 (a) scanf(“%d %c %d”, &a, &b, &c); (b)scanf(“%d %f %s”, &a, &b, &c); (c) scanf(“%d-%d-%d”, &a, &b, &c); (d) scanf(“%d %s %d”, &a, &b, &c);

4、5 (a)10x1、230000 (b)1234x 1、23 (c)1234 456、000000 (d) “123、40 ” (e) 1020 1222(乱码) 4、7 (a)1988 x (b)乱码 (c)120 乱码 (d)乱码 x 4、8 (a)1275 -23 5、740000 (b) 1275 -235、740000 (c) 0 0、000000 (d) 1275xxxx-235、74 (e)Cambridge (f)1275 Cambridge 4、10 1988 无无 Chapter 5 5、1 √×√××××××√ 5、2 && switch break if-else x=y 5、4 (a)x = 2; y = 0; (b) x = 1; y = 0; 5、5 (a) if (grade <= 59) if (grade >= 50) second = second + 1; (b) if (number > 100) printf(“out of range”); else if (number < 0) printf(“out of range”); else sum = sum + number; (c) if (T > 200) printf(“admitted”); else if (M > 60) {if (M > 60) printf(“admitted”);} else printf(“not admitted”); 5、6 F T F T 5、8 (a) x > 10 (b) (x != 10)||(y ! = 5) || (z >= 0) (c) (x + y != z) || (z > 5) (d) (x > 5) || (y != 10) || (z >= 5) 5、9 (a) x = 5; y = 10; z = 1 (b) x = 5; y = 10; z = 1 (c) x = 5; y = 0; z =0 (d) 无变化 5、10 (a) x= 0; y = 2; z = 0; (b) x = 1; y = 2; z = 0; 5、12 8 5、13 Delhi Bangalore END 5、14 2 4 4 8 5、15 0 0 2 5、16 25 5、17 Number is negative 5、18 ABC

最新C语言程序设计模拟试题5(附答案)

《C语言程序设计》模拟试题五 一、填空题(40分) 1.计算机软件分为和;C语言适合编 写 . 2.十进制数35=( ) 2 =( ) 8 =( ) 16 3.已知一个数[X]补=11111001,求[X] 原 = 及 X= . 4.设x=2.5,a=7,y=4.7.求下列算术表达式的值. x+a%3*(int)(x+y)%2/3= . 5.将算式|3-e x ln(1+Y)|写成C语言表达 式. 6.设a=5,b=9.则printf(“a=%d,b=%4d”,a,b)输出为: . 7.用C语句写出累加器、累乘 器、计数器. 8.上机操作时,CTRL+F9键的功能是 ,F2键的功能 是ALT+F5键的功能是 . 9.下列程序段对应的数学表达式 是 int t,n,s=0; scanf(“%d”,&n); for(i=1;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} 10.以下程序用“顺序查找法”查找数组a中是否存在某一关键字. 请填空. main() {int a[10]={25,57,48,38,12,92,88,48,16,25}; int i,x; scanf(“%d”,&X); for(i=0;i<10;i++) if (x==a[i]) {printf(“Found!The index:%d\n”a[i]);(1) ;} if (2) printf(“Can not found!”); }

二、单选题(15分) 1.一个C程序的执行是从 . A.本程序的main()函数开始,到main函数结束. B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束. C.本程序的main()函数开始,到本程序文件的最后一个函数结束. D.本程序文件的第一个函数开始,到本程序main函数结束. 2.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式 为 . main() { int a,b,c; 输入语句; printf(“%c%c%c”,a,b,c); } 输入形式:A B C 输出形式:ABC A.scanf(“%c%c%c”,&a,&b,&c); B.scanf(“%c,%c,%c”,&a,&b,&c); C.scanf(“%c %c %c”,&a,&b,&c); D.scanf(“%c%c”,&a,&b); 3.给出下列程序的运行结果 . main() {int i,j,k,x=0; for(i=2;i<=5;i++) for(j=7;j>=3;j-=2) for(k=4;k<=11;k+=4) x++; printf(“x=%d”,x);} A.x=64 B. x=36 C.x=60 D. x=24 4.若x,i,j和k都是int型变量,则表达式计算下面表达式后,x的值 为 . x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 5.以下不正确if语句形式是 . A.if ( x>y && x!=y ); B.if ( x = = y ) x + = y; C. if ( x != y ) scanf(“%d”,&x) else scanf(“%d”,&y);

(完整版)《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

(完整版)C语言程序设计教程第五章练习题题目

单选题 1、关于数组的定义与初始化,下列哪一项是错误的() A.int arr[5] = {1,2,3,4,5}; B.int arr[] = {1,2,3,4,5}; C.int arr[5] = {1,2,3}; D.int arr[5] = {1,2,3,4,5,6}; 2、在定义数组int arr[10]后,下列选项中对arr的引用正确的是() A.arr[10] B.arr[6.3] C.arr(6) D.arr[0] 3、在C语言中,引用数组元素时,其数组下标的数据类型允许是() A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 4、若int arr[5] = {1,2,3}; 则arr[2]的值为() A.1 B.2 C.3 D.null 5、在执行int arr[][3] = {1,2,3,4,5,6}:语句后,arr[1][0]的值为() A.4 B.1 C.2 D.5 6、关于二维数组,下列选项能正确定义并赋初值的是() A.int n = 5,b[n][n]; B.int a[1][2] = {{1},{3}}; C.int c[2][] = {{1,2},{3,4}}; D.int a[3][2] = {{1,2},{3,4}}; 7、阅读下列程序段: char s[18] = "a book!"; printf("%.4s\n", s); 其输出结果为() A.a book! B.a book C.a bo D.a 8、阅读下列程序: int a[4][4] = { { 1, 3, 5, }, { 2, 4, 6 }, { 3, 5, 7 } }; printf("%d%d%d%d\n", a[0][0], a[1][1], a[2][2], a[3][3]);

c语言程序设计5-6答案

第5章函数 一、选择题 1-5 :CBADD 6-10:BABDC 11-15:DBBAB 16-20:DBBAC 21-25:BBBBC 二、程序阅读题 1、以下程序的正确结果是2,3,-2 2、有以下程序,当执行后,其结果是14 3、以下程序运行后的输出结果是1 3 6 4、若有以下程序执行后输出结果是9 5、有以下程序序运行后的输出结果是9 。 6、以下程序的输出结果是1,6,3,2,3 7、以下程序的输出结果是15 8、以下程序运行后的输出结果是3,2,2,3 9、以下程序的运行结果是m=4 k=4 i=5 j=5 。 10、有以下程序 若运行时输入:1234<回车>,程序的输出结果是10 11、以下程序的输出结果是15 。 三、程序填空题 1、请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 double max ( double,double); 2、下面程序的功能是:将任意输入的一个偶数n分解为两个素数之和,程序中函数check用来判断一个整数x是否是素数,返回1,否则返回0。main( ){ int n, i; int check( int x ); do { printf( " Input n: " ); scanf( " %d" , &n ); } while( n % 2 != 0 ); for( i=3; i<= n/2 ; i++ ) if( check ( i ) &&check(n-i) ) printf( " %d = %d + %d \n ", n, i, n-i );} int check ( int x ){ int i; for( i=2; i< x ; i++ ) if( x%i==0 ) return ( 0 ); return ( 1 ); }

《C语言程序设计》第7章 数组

第7章数组 第1次课:2学时 一、教学内容 1、一维数组的定义和引用 2、二维数组的定义和引用 二、教学目标 1.了解一维数组、二维数组的基本概念; 2.掌握数组的定义与引用; 3.掌握数组元素的引用 三、教学重点及难点 重点:数组的定义和引用 难点:数组的定义和引用 四、教学方法 多媒体教学,案例驱动,实例演示,提问。 五、教学过程设计 在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。本章介绍数值数组和字符数组,其余的在以后各章陆续介绍。 7.1 一维数组的定义和引用 7.1.1 一维数组的定义方式 在C语言中使用数组必须先进行定义。 一维数组的定义方式为:类型说明符数组名[常量表达式]; 其中:类型说明符是任一种基本数据类型或构造数据类型;数组名是用户定义的数组标识符;方括号中的常量表达式表示数据元素的个数,也称为数组的长度。 对于数组类型说明应注意以下几点: (1) 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 (2) 数组名的书写规则应符合标识符的书写规定。 (3) 数组名不能与其它变量名相同。 (4) 方括号中常量表达式表示数组元素的个数,如a[5]表示数组a 有5 个元素。但是其下标从0 开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。 (5) 不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。

第2部分--C语言程序设计练习五

1 《C 语言程序设计》练习五 五、程序设计题 1.从键盘上输入10个整数,并将其存放在一数组中,求出该数组中所有大于零且为偶数的数的平均值。 2.若有n 行n 列数组,试编写一程序,分别求出两条对角线元素之和。(从键盘输入n*n 个整型数,n ≤20) 3.从键盘输入n*n 个整型数(n ≤20),组成n 行n 列数组,打印出其上三角数组。 4.用以下近似公式编一个求π的近似值的程序。 1 21)1(715131141 --++-+-=-n n π,其中n 的值由键盘输入。 5.若数组a 中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。 6.从键盘上输入一个正整数n(n ≤10),求n 的阶乘并输出结果。 7.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值。 8.从键盘输入10个整数,编程求其中大于3且小于100的数的平均值并输出结果。 9.从键盘上输入10个整数,用冒泡法将它们按从小到大的次序排列出来,并把排列的结果输出。

10.用循环语句编程打印下列图案。(第一行的″$″在第20列) $ $ $ $ $ $ $ $ $ $ $ $ $ 11.由键盘输入n*m个数,并把它们存放在一个n行m列的数组中(n、m均不超过20)。(1)按n行m列输出该二维数组; (2)求出该二维数组全部元素的平均值; (3)把该二维数组中大于平均值的元素的值、以及它们行列下标打印出来。 12.从键盘上输入10个字符串(每个串不超过8个字符),将这些字符串按从小到大的次序 排列出来并输出排序后的结果。 13.从键盘上输入一个整数m,判断其是否为“完数”,如果是“完数”则输出“Yes”,否则输出“No”。(所谓完数是指一个数如果刚好与它所有的因子之和相等,则称该数为一个“完数”,如:6=1+2+3,则6就是一个完数。而24不是完数,因为24≠ 1+2+3+4+6+8+12(=36)。一个数的因子是指该数能被该因子整除。) 14.编写一个函数(函数头为:int fun(int y)),其功能是:若参数y为闰年,则返回1,否则返回0。 15.编写一个名为countc函数(函数头为:int countc(char array[])),其功能是:统计array 数组中所存放的字符串中大写字母的数目,并返回字符串中大写字母的数目。 2

c语言程序设计(科学出版社)课后习题解答

第3章习题解答 第1章 1.C 语言程序主要由预处理命令、函数、注释等组成。 2.填空 (1)分号 (2)main (3)stdio.h 3. 源程序: #include main( ) { printf(“*************************\n”); printf(“Hello World!\n”); printf(“*************************”); } 4. 源程序: #include main( ) { int a, b, c; /* 定义变量*/ scanf(“%d”, &a); /* 输入第一个整数*/ scanf(“%d”, &b); /* 输入第二个整数*/ c=a-b; /* 计算差*/ printf(“%d-%d=%d”,a,b,c); /* 输出结果*/ } 5. (1) (2)x=10; (3)printf(“s=%d\n”,s); 第2章 1. (1) c (2) a (3) b g (4) a d e (5) d 2. a. 5 b. 295 c. 4 d. 29 e. 9 3. a.x=4,y=6

b. x=4,y=3 f.x=3,y=6 4. 16 5. #include main() { int a,b,c; scanf("%d%d",&a,&b); c=a*b; printf("%d*%d=%d",a,b,c); } 第3章 1. (1) b (2) b (3) d (4) a (5) b 2. (1)&a,&b (2)l,s 3. printf(“x=%.2f,y=%.2f\n”,x,y); 4. #include main() { int num1,num2,num3,sum; float average; scanf("%d%d%d",&num1,&num2,&num3); sum=num1+num2+num3; average=sum/3.0; printf("sum=%d,average=%.2f\n",sum,average); } 5. #include main() { int hour,minute,second,total; /* 定义变量代表时、分、秒和总秒数*/ scanf("%d",&total); hour=total/3600; minute=total%3600/60; second=total%3600%60;

c语言程序设计第五版习题答案

c语言程序设计第五版习 题答案 Prepared on 24 November 2020

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、dowhile语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { inta1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main()

{ inta1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* IloveCprograms! ************************* 【分析与提示】 ①要有文件包含语句#include<>。C语言中没有数据的输入、输出等功 能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。这些函数的说明都包括在文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干 条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include<> main() { printf("************************\n"); printf("IloveCprograms!\n"); printf("************************\n"); } 第2章数据类型及其运算一.简答题 1.C语言中的数据类型主要有哪几类 【解答】短整型(shortint) 整型整型(int) 长整型(longint) 基本类型字符型(char)(float) 实型(浮点型) 双精度(double) 枚举类型(enum) 数组类型

相关文档
最新文档