| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

大学C语言期末考试练习题含答案

文***品

贡献于2020-11-15

字数:39681

学C语言期末考试练题(带详解答案)
单项选择题
1.( A )构成C语言程序基单位
A函数 B程 C子程序 D子例程
2.C语言程序 C 开始执行
A) 程序中第条执行语句    B) 程序中第函数
   C) 程序中main函数          D) 包含文件中第函数
3说法中正确( C )
AC语言程序总第定义函数开始执行
BC语言程序中调函数必须main( )函数中定义
CC语言程序总main( )函数开始执行
DC语言程序中main( )函数必须放程序开始部分
4列关C语言说法错误( B )
A) C程序工作程编辑编译连接运行
B) C语言区分写
C) C程序三种基结构序选择循环
D) C程序main函数开始执行
5列正确标识符(C )
Aa1 Ba[i] Ca2_i Dint t
5~8题相类型题
考点:标识符命名规
(1) 字母数字划线构成
(2) 数字作标识符开头
(3) 关键字作标识符
选项A中 选项B中[]满足(1)选项D中int关键字满足(3)

6.列C语言户标识符中合法( B )
A)3ax B)x C)case D)e2 E)union
选项A中标识符数字开头满足(2)选项CE均关键字满足(3)选项D中满足(1)

7.列四组选项中正确C语言标识符( C )
A) x B) a+b C) a123 D) 123
选项A中 选项B中+满足(1)选项D中标识符数字开头满足(2)

8列四组字符串中作C语言程序中标识符( A )
Aprint _3d db8 aBc BI\am one_half startit 3pai
Cstr_1 Cpp pow while DPxq My>book line# Hisage
选项B中\ 选项D中>#满足(1)选项C中while关键字满足(3)
9C语言中简单数类型包括(D )
A整型实型逻辑型 B整型实型逻辑型字符型
C整型字符型逻辑型 D整型实型字符型
10C语言程序中表达式52结果 C
A)25 B)2 C)1 D)3
详见教材P52~53
求余运算符该运算符整型数进行运算符号模数相521 5(2)1(5)21(5)(2)1

求商运算符该运算符够整型字符浮点等类型数进行运算522
11.果int a3b4条件表达式aA) 3 B) 4 C) 0 D) 1
详见教材P97
表达式1?表达式2:表达式3
先计算表达式1
表达式1成立 选择计算表达式2表达式2值作整表达式值
表达式1成立选择计算表达式3表达式3值作整表达式值
题中aa3b4a
12.int x2y3z4 表达式x A)4 B)3 C)2 D)0 E)1
13.C语言中关系表达式逻辑表达式值( B )
A) 0 B) 01 C) 1 D) T’’F’
14 面( D )表达式值4
   A) 113           B) 1103
   C) (float)113    D) (int)(1103+05)
14~16题类型
详见教材P54~56
(1)相数类型元素进行数学运算(+*)结果保持原数类型
(2)数类型元素进行数学运算先统数类型统标准低精度类型转换高精度数类型
选项A113两整数113结果数类型应整数3666666数部分全部舍掉仅保留整数1133
选项B110实数3整数首先统数类型整型数3转换30转换数类型统实型数选项B变11030结果数类型应实型数选项B 110 33666666
选项C先整数11强制类型转换转换实型110选项C变1103计算程结果选项B
选项D首先计算1103计算程结果选项B3666666计算3666666+0541666664166666强制类型转换整型数部分全部舍掉结果4

15设整型变量 a2执行列语句浮点型变量b值05( B )
Ab10a Bb(float)(1a)
Cb1(float)a Db1(a*10)
16 int n float f138执行n(int)f3n值(A)
A1 B4 C4333333 D46
(int)f表示f中值强制类型转换整型138数部分舍掉转换13然计算133结果1结果赋变量nn值1

17 维数组a正确说明: D
A) char a(10) B) int a[]
C)int k=5a[k] D)char a[3]{a’’b’’c’}
详见教材P143~144维数组定义初始化
类型符 数组名 [常量表达式]
类型符指数组中数组元素类型数组名符合标识符命名规常量表达式指数组长度(数组中包含元素数)值整数变量1开始计数
选项A常量表达式放中括号 [ ]中
选项B数组初始化(赋值)时候省略数组长度B中未a进行初始化
选项C常量表达式变量
18维数组a进行初始化语句 ( C )
A int a[5](01234) B int a(5){}
C int a[3]{012} D int a{5}{10*1}
详见教材P145维数组定义初始化
选项BD常量表达式放中括号 [ ]中
选项A数组做干相数类型元素序集合集合形式初始化{ }初始化选项A()

19C语言中维整型数组正确定义 D
A)int a(10) B)int n10a[n]
C)int na[n] D)#define N 10
int a[N]
20已知:int a[10] a数组元素正确引( D )
Aa[10] Ba[35] Ca(5) Da[0]
详见教材P144数组元素引
数组名[标]
引数组元素时[ ]中标逻辑址标整数变量0开始计数
int a[10]表示定义包含10整型数数组a数组元素逻辑址标范围0~9a[0] 表示组中第1元素 a[1] 表示组中第2元素 a[2] 表示组中第3元素 a[9] 表示组中第10元素
选项A超数组a逻辑址标范围
选项B逻辑址标整数
选项C逻辑址标放[ ]中


21数组说明i10a[a[i]]元素数值(C )
int a[12]{147102581136912}
A10 B9 C6 D5
先算a[a[i]]层a[i]i10a[i]a[10]
a[10]应面数组中元素9 a[a[i]]a[9]
a[9]应面数组中元素6 a[9]6


22说明:int a[][3]{{123}{45}{67}} 数组a第维 ( B )
A 2 B 3 C 4 D确定值
5 7 D) 3 6 9
二维数组维指二维数组行数题中行二维数组赋值层括号数组行
23二维数组正确定义( C )
详见教材P149~152二维数组定义初始化
类型符 数组名 [常量表达式][常量表达式]
二维数组做矩阵
类型符指数组中数组元素类型数组名符合标识符命名规第常量表达式指数组行数第二常量表达式指数组列数常量表达式值整数变量1开始计数
维数组初始化时省略数组长度
二维数组初始化时省略行数省略列数
选项AB省略列数
选项D符合二维数组定义般形式行列常量表达式应该放[]中

   Aint a[ ] [ ]{123456} Bint a[2] [ ]{123456}
Cint a[ ] [3]{123456} Dint a[23]{123456}
24.已知int a[3][4]数组元素引正确__C___
A)a[2][4] B)a[13] C)a[2][0] D)a(2)(1)
详见教材P150数组元素引
数组名[标] [标]
引数组元素时[ ]中标逻辑址标整数变量0开始计数
第[标]表示行逻辑址标第二[标]表示列逻辑址标
题图示详见P149图67
a行逻辑址范围0~2a列逻辑址范围0~3
选项A列逻辑址标超范围
选项BD引形式正确

25C语言中函数返回值类型 A 决定
A)函数定义时指定类型 B) return语句中表达式类型
C) 调该函数时实参数类型 D) 形参数类型
26 C语言中函数数类型指( A )
A 函数返回值数类型 B 函数形参数类型
C 调该函数时实参数类型 D意指定数类型
27 函数调时说法正确( B )
 A函数调必须带回返回值
 B实际参数形式参数名
 C函数间数传递全局变量
 D调函数调函数总文件里
28 C语言中表示静态存储类关键字 ( C )
A) auto B) register C) static D) extern
29.未指定存储类变量隐含存储类( A )
A)auto B)static C)extern D)register
30 说明语句:
struct student
{ int num
char name[ ]
float score
}stu
面叙述正确 ( D )
A struct结构体类型关键字
B struct student 户定义结构体类型
C num score结构体成员名
D stu户定义结构体类型名
31说明语句:
struct date
{ int year
int month
int day
}brithday
面叙述正确__C___
A) struct声明结构体类型时关键字
B) struct date 户定义结构体类型名
C) brithday户定义结构体类型名
D) yearday 结构体成员名
32 结构变量stul中成员age非法引 B
struct student
{ int age
int num
}stu1*p
p&stu1
A) stu1age B) studentage C) p>age D) (*p)age
33设定义:
struck sk
{ int a
float b
}data
int *p
P指data中a域正确赋值语句 C
A) p&a B) pdataa C) p&dataa D)*pdataa
34设说明语句:
typedef struct stu
{ int a
float b
} stutype
面叙述中错误( D )
Astruct结构类型关键字
Bstruct stu户定义结构类型
Cab结构成员名
Dstutype户定义结构体变量名
35. 语句int *p说明 C
A)p指维数组指针
B)p指函数指针该函数返回int型数
C)p指int型数指针 指针定义教材P223
D)p函数名该函数返回指int型数指针
36.列正确定义( A )
A int *p&ii Bint *pi
C.int i*p&i Dint i*p
选项A先定义整型指针变量p然变量i址赋p然时未定义变量i编译器法获变量i址(AC选项C先定义变量i存中i分配空间i存空间址确定然定义p时p赋i址C正确)
37 说明:int n2*p&n*qp非法赋值语句 ( D )
A)pq B)*p*q C)n*q D)pn
pq整型指针变量二者里面仅存放整型变量址
选项Aq中址址赋p
选项B*p表示p指象n容整数*q表示q指象容定义q时初始化p中n址qp中存放n址*q表示q指象n容*p*q 相 nn
选项Cn*q 等价nn
选项Dp中存放址n中整数值赋p
38.语句:int a[10] B 指针变量p正确定义初始化
A)int p*a B)int *pa C)int p&a D)int *p&a
选项Aa数组名指针变量名*标注数组名a
选项Ca数组名数组名址需址符号定义指针变量p时应变量名前加*标明p指针变量
选项Da数组名数组名址需址符号
39说明语句int a[5]*pa数组元素正确引( C )
Aa[p] Bp[a] C*(p+2) Dp+2
首先定义整型数组aa长度5然定义指针变量p时p进行初始化数组a址赋p时p中存放数组a首址数组中第元素a[0]址
数组元素标引(详见p144) 般形式 数组名[标] 中标逻辑址标0开始计数方括号中标变量表达式结果定整数
选项Ap中存放址整数做数组元素标
选项Ba数组名数组名址整数做数组元素标
选项C(重点详见p231~234) p+2表示指数组中两元素址前p指a[0]p+2表示a[2]址*(p+2)表示a[2]容
40 程序
int a[10]{12345678910}*Pa
数值9表达式 B
A) *P+9 B) *(P+8) C) *P+9 D) P+8
(重点详见p231~234)
首先定义整型数组aa长度5然定义指针变量P时P进行初始化数组a址赋P时P中存放数组a首址数组中第元素a[0]址
数组中9应a[8] 选项BP+8表示数组中8元素址a[8]址*(P+8)表示该址存放容a[8]值
选项A*P表示P指象容时P指a[0] *Pa[0]值1 *P+91+910
选项C*P表示P指象容时P指a[0] *Pa[0]值*P+9 *P *P+9 等价a[0]a[0]+9
选项DP+8表示数组中8元素址a[8]址非a[8]中值
41 C语言中 D 作字符串结束标志
A)’\n’ B)’ ’ C) ’0’ D)’\0’
42列数中属字符串常量( A )
Aa B{ABC} Cabc\0’ Da’
干字符构成字符串
C语言中单引号标识字符双引号标识字符串
选项BC分{}’’标识字符串
选项D标识字符
43已知char x[]hello y[]{'h''e''a''b''e'} 关两数组长度正确描述 B
A)相 B)xy C)xy D)答案
C语言中字符串面需结束标志位'\0'通常系统会动添加
维数组初始化时采字符串形式(例题数组x)采字符集合形式(例题数组y)字符串形式初始化时数组x存储字符串中字符存储字符串结束标志位数组x长度6字符集合形式初始化时数组y仅存储集合中元素数组y长度5
二 读程序
基输入输出流程控制
1
#include
main()
{ int a1b3c5
if (ca+b)
printf(yes\n)
else
printf(no\n)
}
运行结果:no

详见教材p89 选择结构
详见教材p91关系符号
详见附录D p378符号优先级
表示判断符号两边值否相等表示符号右边值赋左边变量
题考点选择结构3种基形式第二种

选择结构三种般形式中语句皆复合语句复合语句{ }括起复合语句中包括条语句时省略{ }题两printf操作没加{ }

ca+b成立执行printf(yes\n)
否(ca+b成立)执行printf(no\n)

+优先级高先算a+b值4 表达式54成立执行printf(no\n)输出字符串no

2
#include
main()
{ int a12 b 34 c56 min0
mina
if(min>b)
minb
if(min>c)
minc
printf(mind min)
}
运行结果: min34
详见教材p89 选择结构
题考点选择结构3种基形式第种
包含两选择结构(两if语句)
定义变量赋值 时a12 b 34 c56 min0
a中值拷贝赋min覆盖min中0时min中值更新12
min>b成立执行minb
min>c成立执行minc
输出min中值

1234第if语句表达式成立执行minb 执行min中值更新34
3456第二if语句表达式成立执行minc

输出min中值34



3
#include
main()
{ int x2y 1z5
if(xif(y<0)
z0
else
zz+1
printf(d\nz)
}
运行结果:5
遇选择结构首先明确条件表达式成立时执行操作题中第if语句复合语句没括号{ }说明复合语句中包含条语句进省略{ }层ifelse选择结构第二种基形式结构视条语句层ifelse作第if语句复合语句

表达式x y<0执行z0
否(y>0)执行zz+1
输出z
2>1表达式x输出z中值5

4
#include
main()
{ float abct
a3
b7
c1
if(a>b)
{taabbt}
if(a>c)
{taacct}
if(b>c)
{tbbcct}
printf(52f52f52fabc)
}
运行结果:100 200 700

详见教材p72数输出形式
题包含3if语句if语句{ }省略{ }中包含条语句
表达式a>b成立执行{taabbt}
表达式a>c成立执行{taacct}
表达式b>c成立执行{tbbcct}
输出abc中值求输出数宽度5空格数部分保留2位数右齐

37表达式a>b成立执行{taabbt}

31表达式a>c成立执行{taabbt}第句a中3拷贝粘贴t中第二句c中1拷贝粘贴a中覆盖掉先前3第三句t中3拷贝c中覆盖掉c中先前1 执行完复合语句实现ac元素值互换a1c3t3

7c中3b>c成立执行执行{tbbcct}程执行b3c7t7

时输出abc中值100 200 700

5.
#include < stdio h >
main ( )
{ float c30 d40
if ( c>d ) c50
else
if ( cd ) c60
else c70
printf ( 1f\nc )
}
运行结果:70
题ifelse语句嵌套第二ifelse作第ifelse语句else部分复合语句

表达式c>d成立执行c50
否(表达式c>d成立)
表达式cd成立执行c60
否执行c70
输出c中值

3040表达式c>d成立执行第二if…else…
30等40表达式cd成立执行c7070赋c 覆盖掉c中30时c中值70
输出时c中值

6
#include
main()
{ int m
scanf(d &m)
if (m > 0)
{ if (m2 0) printf(d is a positive even\n m)
else printf(d is a positive odd\n m) }
else
{ if (m 2 0) printf(d is a negative even\n m)
else printf(d is a negative odd\n m) }
}
键入-9运行结果 9 is a negative odd


7
#include
main()
{ int num0
while(num<2){ num++printf(d\nnum)}
}
运行结果:
1
2
3

详见教材p115循环结构
循环条件num<2成立时候执行循环体{ num++printf(d\nnum)}中语句

循环初值num0
循环条件num<2成立
第1次循环:执行num++num中值加1执行num1
执行printf(d\nnum)屏幕输出num中值输出1换行

时num中值1循环条件num<2成立
第2循环:执行num++num中值加1执行num2
执行printf(d\nnum)屏幕输出num中值输出2换行

时num中值2循环条件num<2成立
第3循环:执行num++num中值加1执行num3
执行printf(d\nnum)屏幕输出num中值输出3换行
时num中值3循环条件num<2成立结束循环

8.
#include
main( )
{ int sum10n1
while(n<3) {sumsumn n++ }
printf(ddnsum)
}
运行结果:37

循环条件n<3成立时候执行循环体{sumsumn n++ }中语句

循环初值sum10n1
循环条件n<3成立
第1次循环:执行sumsumn1019
执行n++n中值加1执行n2

时n中值2sum中值9循环条件n<3成立继续执行循环
第2次循环:执行sumsumn927
执行n++n中值加1执行n3

输出时nsum中值37需注意printf(ddnsum) 中求输出数彼间逗号间隔结果两数间定逗号




9
#include
main()
{ int numc
scanf(d&num)
do {cnum10 printf(dc) }while((num10)>0)
printf(\n)
}
键盘输入23运行结果:32
详见教材p117循环结构p60复合赋值运算符
do{ }while(表达式)
先条件执行循环体判断循环条件注意while(表达式)分号

定义整型变量numc
num赋整型值
执行{cnum10 printf(dc) }直循环条件(num10)>0成立
输出换行

已知num赋值23
第1次执行循环体
执行cnum1023103
执行printf(dc)输出3
判断循环条件 num10等价numnum10 num23102 20循环条件(num10)>0成立继续执行循环体执行完第1次循环时num2c3


第2次执行循环体
执行c2102
执行printf(dc)输出2
判断循环条件num21000等0循环条件(num10)>0成立结束循环

10
#include
main()
{ int s0a5n
scanf(d&n)
do { s+1 aa2 }while(an)
printf(dd\nsa)
}
输入值1运行结果: 21
详见教材p117循环结构p60复合赋值运算符
执行{ s+1 aa2 }直循环条件an成立

已知n赋值1s0a5
第1次执行循环体
执行s+1等价ss+10+1
执行aa2 a523
判断循环条件3等1循环条件an成立继续执行循环体
执行完第1次循环时s1a3
第2次执行循环体
执行s+1等价ss+11+12
执行aa2 a321
判断循环条件1等1循环条件an成立结束循环
执行完第2次循环时s2a1

输出时sa中值结果21

11.
#include stdioh
main()
{char c
cgetchar()
while(c'') {putchar(c) cgetchar() }
}
果键盘输入abcde?fgh(回车)
运行结果:abcde

12.
#include
main()
{ char c
while((cgetchar())’’)
{ if(A’ else if(a’}
输入ab*ABcd#CD时运行结果:ABABCDCD

13
#include
main()
{ int x y 0
for(x1x<10x++)
{ if(y>10)
break
yy+x
}
printf(d dyx)
}
运行结果:10 5
详见教材p120 for语句
详见教材p126~128 breakcontinue语句
for( 表达式1表达式2表达式3)
{

}
(1) 先求解表达式1
(2) 求解表达式2值真执行循环体然执行 (3) 假结束循环转(5)
(3) 求解表达式3
(4) 转回面 (2)继续执行
(5) 循环结束执行for语句面语句

break 跳出循环体continue结束次循环(第i次循环)继续执行次循环(第i+1次循环)

题 表达式1x1表达式2(循环条件)x<10表达式3x++
初值x1y0循环条件(表达式2)x<10成立进入循环体

第1次循环
执行if语句010if语句条件表达式成立执行break
执行yy+x y0+11
转表达式3执行x++ xx+11+12循环条件x<10成立进入第2次循环

第2次循环
执行if语句110if语句条件表达式成立执行break
执行yy+x y1+23
转表达式3执行x++ xx+12+13循环条件x<10成立进入第3次循环

第3次循环
执行if语句310if语句条件表达式成立执行break
执行yy+x y3+36
转表达式3执行x++ xx+13+14循环条件x<10成立进入第4次循环

第4次循环
执行if语句610if语句条件表达式成立执行break
执行yy+x y6+410
转表达式3执行x++ xx+14+15循环条件x<10成立进入第5次循环

第5次循环
执行if语句10等10if语句条件表达式成立执行break跳出循环
break跳出for语句条语句执行printf(d dyx)
输出前yx结果10 5


14
#include
main( )
{ char ch
chgetchar( )
switch(ch)
{ case A’ printf(c’A’)
case B’ printf(c’B’) break
default printf(s\nother)
} }
键盘输入字母A时运行结果:AB
详见教材p103switch语句
switch(表达式)
{ case 常量1 :语句1
case 常量2 :语句2
┇ ┇ ┇
case 常量n :语句n
default 语句n+1
}
中表达式常量1…常量n整型字符型

case相出执行程序入口起始位置找匹配常量处开始执行程序匹配常量直遇breakswitch结束

题程:
首先键盘接收字符’A’放变量ch中
执行switch语句Switch面条件表达式ch表达式值字符’A’ 字符’A’次面 case中常量匹配
第1case常量匹配语句开始执行程序(执行程中进行匹配)先执行printf(c’A’)屏幕输出A继续执行printf(c’B’)屏幕输出B继续执行break 时跳出switch语句


15
#include
main( )
{ int a1b0
scanf(d&a)
switch(a)
{ case 1 b1break
case 2 b2break
default b10}
printf(d b)
}
键盘输入5运行结果:10
题程:
首先scanf函数变量a赋值5
执行switch语句switch面条件表达式a表达式值5 5次面 case中常量匹配没找匹配常量两case语句执行执行default面语句b1010赋变量b
输出变量b结果10



16
#include
main()_
{ char grade’C’
switch(grade)
{
case A’ printf(90100\n)
case B’ printf(8090\n)
case C’ printf(7080\n)
case D’ printf(6070\n) break
case E’ printf(<60\n)
default printf(error\n)
}
}
运行结果:
7080
6070
题程:
首先键盘接收字符’C’放变量grade中
执行switch语句switch面条件表达式grade表达式值字符’C’ 字符’C’次面 case中常量匹配
第3case常量匹配语句开始执行程序(执行程中进行匹配)先执行printf(7080\n)屏幕输出7080换行继续执行printf(6070\n)屏幕输出6070换行继续执行break 时跳出switch语句


17
#include
main()
{ int y9
for(y>0y )
if(y30)
{ printf(d y)
}
}
运行结果:
852

详见教材p53增减符号
题 表达式1省略表达式2(循环条件)y>0表达式3y
初值y9循环条件(表达式2)y>0成立进入循环体

第1次循环
执行if语句930if语句条件表达式成立执行printf(d y)y先减1变8然输出屏幕输出8
转表达式3执行y yy1817循环条件y>0成立进入第2次循环

第2次循环
执行if语句730if语句条件表达式成立执行printf(d y)
转表达式3执行y yy1716循环条件y>0成立进入第3次循环

第3次循环
执行if语句630if语句条件表达式成立执行printf(d y)y先减1变5然输出屏幕输出5
转表达式3执行y yy1514循环条件y>0成立进入第4次循环

第4次循环
执行if语句430if语句条件表达式成立执行printf(d y)
转表达式3执行y y413循环条件y>0成立进入第5次循环

第5次循环
执行if语句330if语句条件表达式成立执行printf(d y)y先减1变2然输出屏幕输出2
转表达式3执行y yy1211循环条件y>0成立进入第5次循环
第6次循环
执行if语句130if语句条件表达式成立执行printf(d y)
转表达式3执行y y110循环条件y>0成立循环结束


18
#include
main()
{ int isum0 i1
do{ sumsum+i i++ }while(i<10)
printf(dsum)
}
运行结果: 55




19
#include
#define N 4
main()
{ int i
int x11x22
printf(\n)
for(i1i{ printf(4d4dx1x2)
if(i20)
printf(\n)
x1x1+x2
x2x2+x1
}
}
运行结果:
1 2 3 5
8 13 21 34

题 首先整型变量赋初值x11x22
表达式1i1表达式2(循环条件)i循环变量初值i1循环条件(表达式2)i<4成立进入第1次循环

第1次循环
执行printf(4d4dx1x2)屏幕输出1 2
执行if语句120if语句条件表达式成立执行printf(\n)
执行x1x1+x21+23时x1中值已变3
执行x2x2+x12+35
转表达式3执行i++ i2循环条件i<4成立进入第2次循环
第2次循环
执行printf(4d4dx1x2)屏幕输出3 5
执行if语句220if语句条件表达式成立执行printf(\n)换行
执行x1x1+x23+58时x1中值已变8
执行x2x2+x15+813
转表达式3执行i++ i3循环条件i<4成立进入第3次循环
第3次循环
执行printf(4d4dx1x2)屏幕输出8 13
执行if语句320if语句条件表达式成立执行printf(\n)
执行x1x1+x28+1321时x1中值已变21
执行x2x2+x121+1334
转表达式3执行i++ i4循环条件i<4成立进入第4次循环
第2次循环
执行printf(4d4dx1x2)屏幕输出21 34
执行if语句420if语句条件表达式成立执行printf(\n)换行
执行x1x1+x221+3455时x1中值已变55
执行x2x2+x134+5589
转表达式3执行i++ i5循环条件i<4成立结束循环


20
#include
main( )
{ int x y
for(x30 y0 x>10 y<10 x y++)
x2 y+2
printf(xdyd\nxy)
}
运行结果:
x0y12

21
#include
#define N 4
main( )
{ int ij
for(i1i { for(j1j printf( )
printf(*)
printf(\n)
}}
运行结果:
*
*
*
*

详见教材P41符号常量
宏处理指令定义符号常量N4编译程中遇N视整数4

外层for循环表达式1i1表达式2(循环条件)i层for循环表达式1j1表达式2(循环条件)j
首先计算外层循环表达式1i1循环条件i<4成立进入外层for循环体

外层for循环第1次 时i1
层循环j1循环条件j 执行printf(*)
执行printf(\n)换行
外层循环体执行完计算外层循环表达式3i++时i2 循环条件i<4
成立次进入外层for循环体

外层for循环第2次 时i2
层循环j1循环条件j第1次执行层循环体printf( )
执行层循环表达式3j++2j
执行printf(*)
执行printf(\n)换行
外层循环体执行完计算外层循环表达式3i++时i3 循环条件i<4
成立进入外层for循环体

外层for循环第3次 时i3
层循环j1循环条件j第1次执行层循环体printf( )
执行层循环表达式3j++2j第2次执行层循环体printf( )
执行层循环表达式3j++3j 执行printf(*)
执行printf(\n)换行
外层循环体执行完计算外层循环表达式3i++时i4 循环条件i<4
成立进入外层for循环体

外层for循环第4次 时i4
层循环j1循环条件j第1次执行层循环体printf( )
执行层循环表达式3j++2j第2次执行层循环体printf( )
执行层循环表达式3j++3j第3次执行层循环体printf( )
执行层循环表达式3j++4j 执行printf(*)
执行printf(\n)换行
外层循环体执行完计算外层循环表达式3i++时i5 循环条件i<4
成立跳出外层for循环体




数组
1
#include
main()
{ int i a[10]
for(i9i>0i)
a[i]10i
printf(ddda[2]a[5]a[8])
}
运行结果:
852

详见p143146 例题61定懂

首先定义整型变量i整型数组a a长度10a中包含10整型元素(整型变量)
执行for循环语句
初值i9 循环条件i>0成立执行循环体
第1次循环
执行a[i]10i 等价a[9]1091
计算表达式3ii8循环条件i>0成立继续执行循环体
第2次循环
执行a[i]10i 等价a[8]1082
计算表达式3ii7循环条件i>0成立继续执行循环体
第3次循环
执行a[i]10i 等价a[7]1073
计算表达式3ii6循环条件i>0成立继续执行循环体
第4次循环
执行a[i]10i 等价a[6]1064
计算表达式3ii5循环条件i>0成立继续执行循环体
第5次循环
执行a[i]10i 等价a[5]1055
计算表达式3ii4循环条件i>0成立继续执行循环体
第6次循环
执行a[i]10i 等价a[4]1046
计算表达式3ii3循环条件i>0成立继续执行循环体
第7次循环
执行a[i]10i 等价a[3]1037
计算表达式3ii2循环条件i>0成立继续执行循环体
第8次循环
执行a[i]10i 等价a[2]1028
计算表达式3ii1循环条件i>0成立继续执行循环体
第9次循环
执行a[i]10i 等价a[1]1019
计算表达式3ii0循环条件i>0成立继续执行循环体
第10次循环
执行a[i]10i 等价a[0]10010
计算表达式3ii1循环条件i>0成立跳出循环体

2
#include
main()
{ int ia[6]
for (i0 i<6 i++)
a[i]i
for (i5 i>0 i)
printf(3da[i])
}
运行结果:
5 4 3 2 1 0
首先定义整型变量i整型数组a a长度6a中包含6整型元素(整型变量)
执行第for循环语句
初值i0 循环条件i<6成立执行循环体
第1次循环
执行a[i] i 等价a[0]0
计算表达式3i++i1循环条件i<6成立继续执行循环体
第2次循环
执行a[i] i 等价a[1]1
计算表达式3i++i2循环条件i<6成立继续执行循环体
第3次循环
执行a[i] i 等价a[2]2
计算表达式3i++i3循环条件i<6成立继续执行循环体
第4次循环
执行a[i] i 等价a[3]3
计算表达式3i++i4循环条件i<6成立继续执行循环体
第5次循环
执行a[i] i 等价a[4]4
计算表达式3i++i5循环条件i<6成立继续执行循环体
第6次循环
执行a[i] i 等价a[5]5
计算表达式3i++i6循环条件i<6成立结束循环

执行第二for循环语句
初值i5 循环条件i>0成立执行循环体
第1次循环
执行printf(3da[i]) 输出a[5]值
计算表达式3ii4循环条件i>0成立继续执行循环体
第2次循环
执行printf(3da[i]) 输出a[4]值
计算表达式3ii3循环条件i>0成立继续执行循环体
第3次循环
执行printf(3da[i]) 输出a[3]值
计算表达式3ii2循环条件i>0成立继续执行循环体
第4次循环
执行printf(3da[i]) 输出a[2]值
计算表达式3ii1循环条件i>0成立继续执行循环体
第5次循环
执行printf(3da[i]) 输出a[1]值
计算表达式3ii0循环条件i>0成立继续执行循环体
第6次循环
执行printf(3da[i]) 输出a[0]值
计算表达式3ii6循环条件i>0成立结束循环

3
#include
main( )
{ int ika[10]p[3]
k5
for(i0i<10i++)
a[i]i
for(i0i<3i++)
p[i]a[i*(i+1)]
for(i0i<3i++)
k+p[i]*2
printf(d\nk)
}
运行结果:21
首先定义整型变量ik整型数组a a长度10整型数组p p长度3
k初值5
第for循环语句数组a进行初始化
执行完第for语句a[0]0a[1]1a[2]2a[3]3a[4]4a[5]5a[6]6a[7]7a[8]8a[9]9 (循环程略)

第二for循环语句数组p进行初始化
初值i0 循环条件i<3成立执行循环体
第1次循环
执行p[i]a[i*(i+1)] p[0]a[0*(0+1)]a[0]0
计算表达式3i++i1循环条件i<3成立继续执行循环体
第2次循环
执行p[i]a[i*(i+1)] p[1]a[1*(1+1)]a[2]2
计算表达式3i++i2循环条件i<3成立继续执行循环体
第3次循环
执行p[i]a[i*(i+1)] p[2]a[2*(2+1)]a[6]6
计算表达式3i++i3循环条件i<3成立结束循环

第三for循环语句
初值i0 循环条件i<3成立执行循环体
第1次循环
执行k+p[i]*2 k5+p[0]*25+05
计算表达式3i++i1循环条件i<3成立继续执行循环体
第2次循环
执行k+p[i]*2 k5+p[1]*25+2*29
计算表达式3i++i2循环条件i<3成立继续执行循环体
第1次循环
执行k+p[i]*2 k9+p[2]*29+6*221
计算表达式3i++i3循环条件i<3成立结束循环

4
#include
int m[3][3]{{1}{2}{3}}
int n[3][3]{12 3}
main( )
{ printf(d m[1][0]+n[0][0])
printf(d\nm[0][1]+n[1][0])
}
运行结果:
30
详见教材P149~152图67懂

首先定义整型二维数组mm3行3列二维矩阵行形式初始化
m[0][0]1 m[0][1]0 m[1][2]0
m[1][0]2 m[1][1]0 m[2][2]0
m[2][0]3 m[2][1]0 m[2][2]0

定义整型二维数组nm3行3列二维矩阵
n[0][0]1 n[0][1]2 n[1][2]3
n[1][0]0 n[1][1]0 n[2][2]0
n[2][0]0 n[2][1]0 n[2][2]0

m[1][0]+n[0][0]2+13
m[0][1]+n[1][0]0+00



5
#include
main()
{ int i
int x[3][3]{123456789}
for (i1 i<3 i++)
printf(d x[i][3i])
}
运行结果:
6 8

首先存储序数组x初始化
x[0][0]1 x[0][1]2 x[0][2]3
x[1][0]4 x[1][1]5 x[1][2]6
x[2][0]7 x[2][1]8 x[2][2]9

初值i1 循环条件i<3成立执行循环体
第1次循环
执行printf(d x[i][3i])印出x[i][3i]x[1][2]值
计算表达式3i++i2循环条件i<3成立继续执行循环体
第2次循环
执行printf(d x[i][3i])印出x[i][3i]x[2][1]值
计算表达式3i++i3循环条件i<3成立结束循环


6
#include
main( )
{ int n[3][3] i j
for(i0i<3i++ )
{for(j0j<3j++ )
{n[i][j]i+j
printf(d n[i][j])
}

}
}
运行结果:
0 1 2
1 2 3
2 3 4

循环变量i0 循环条件 i<3成立执行循环体
外层for第1次循环 相输出第1行
层for循环j初值0循环条件j<3成立执行循环体
层for第1次循环
执行n[i][j]i+jn[0][0]0+00
执行printf(d n[i][j])
执行层循环表达式3j++j1j<3成立继续执行层循环体
层for第2次循环
执行n[i][j]i+jn[0][1]0+11
执行printf(d n[i][j])
执行层循环表达式3j++j2j<3成立继续执行层循环体
层for第3次循环
执行n[i][j]i+jn[0][2]0+22
执行printf(d n[i][j])
执行层循环表达式3j++j3j<3成立结束层循环
执行printf(\n)
执行外层for语句表达式3i++i1 i<3成立继续执行外层循环体
外层for第2次循环 相输出第2行
层for循环j初值0循环条件j<3成立执行循环体
层for第1次循环
执行n[i][j]i+jn[1][0]1+01
执行printf(d n[i][j])
执行层循环表达式3j++j1j<3成立继续执行层循环体
层for第2次循环
执行n[i][j]i+jn[1][1]1+12
执行printf(d n[i][j])
执行层循环表达式3j++j2j<3成立继续执行层循环体
层for第3次循环
执行n[i][j]i+jn[1][2]1+23
执行printf(d n[i][j])
执行层循环表达式3j++j3j<3成立结束层循环
执行printf(\n)
执行外层for语句表达式3i++i1 i<3成立继续执行外层循环体
外层for第2次循环 相输出第3行
层for循环j初值0循环条件j<3成立执行循环体
层for第1次循环
执行n[i][j]i+jn[2][0]2+01
执行printf(d n[i][j])
执行层循环表达式3j++j1j<3成立继续执行层循环体
层for第2次循环
执行n[i][j]i+jn[2][1]2+12
执行printf(d n[i][j])
执行层循环表达式3j++j2j<3成立继续执行层循环体
层for第3次循环
执行n[i][j]i+jn[2][2]2+23
执行层循环表达式3j++j3j<3成立结束层循环
执行printf(\n)
执行外层for语句表达式3i++i3 i<3成立结束外层循环



7.
#include
main()
{
char diamond[][5]{{_’’_’’*’}{_’*’’_’’*’}
{*’’_’’_’_’*’}{_’’*’’_’’*’}{_’’_’’*’}}
int ij
for(i0i<5i++)
{
for(j0j<5j++)
printf(cdiamond[i][j])
printf(\n)
}
}注:_代表空格
运行结果:
*
* *
* *
* *
*
8
#include
main( )
{ int i f[10]
f[0]f[1]1
for(i2i<10i++)
f[i]f[i2]+f[i1]
for(i0i<10i++)
{ if(i40)
printf(\n)
printf(d f[i])
}
}
运行结果:
1 1 2 3
5 8 13 21
34 55


9.
#include stdioh
func(int b[ ])
{ int j
for(j0j<4j++)
b[j]j
}
main( )
{ int a[4] i
func(a)
for(i0 i<4 i++)
printf(2da[i])
}
运行结果:
0 1 2 3

详见教材P194
定义函数func
函数头:未定义函数类型系统默认int型函数func形参整型数组名接收整型数组址
函数体:定义整型变量j
循环变量初值(表达式1)j0 循环条件(表达式2)j<4成立执行循环体
第1次循环
执行b[j]j b[0]0
执行循环变量增(表达式3) j++j1j<4成立继续执行循环体
第2次循环
b[1]1
j++j2j<4成立继续执行循环体
第3次循环
b[2]2
j++j3j<4成立继续执行循环体
第4次循环
b[3]3
j++j4j<4成立结束循环

main函数:
定义整型变量i数组a长度4
func(a)表示调函数func数组名a作调实参(数组名C语言中表示数组存空间首址数组名作实参时形参实参公存储空间数组b操作数组a操作)



10
#include
main()
{float fun(float x[])
float avea[3]{4524}
avefun(a)
printf(ave72fave)
}
float fun(float x[])
{int j
float aver1
for (j0j<3j++)
averx[j]*aver
return(aver)
}
运行结果:
ave 3600


11
#include
main()
{int a[2][3]{{123}{456}}
int b[3][2]ij
for(i0i<1i++)
{for(j0j<2j++)
b[j][i]a[i][j]
}
for(i0i<2i++)
{for(j0j<1j++)
printf(5db[i][j])
}
}
运行结果:
1 4 2 5 3 6

12.
#include
f(int b[]int n)
{int ir
r1
for (i0irr*b[i]
return (r)
}
main()
{int xa[]{123456789}
xf(a3)
printf(d\nx)
}
运行结果:
24

13
#includestdioh
main()
{int jk
static int x[4][4]y[4][4]
for(j0j<4j++)
for(kjk<4k++)
x[j][k]j+k
for(j0j<4j++)
for(kjk<4k++)
y[k][j]x[j][k]

for(j0j<4j++)
for(k0k<4k++)
printf(dy[j][k])
}
运行结果:
0000120023403456
函数
1
#include
int Sub(int a int b)
{return (a b)}
main()
{int x y result 0
scanf(dd &x&y )
result Sub(xy )
printf(result d\nresult)
}
键盘输入63运行结果:
result 3

2
#include
int min( int x int y )
{ int m
if ( x> y ) m x
else m y
return(m)

 main() {
int a3b5abmin
abmin min(ab)
printf(min is d abmin)
}
运行结果:
min is 5

3
#include
func(int x) {
x10
printf(d x)
}
main( )
{ int x20
func(x)
printf(d x)
}
运行结果:
10 20

main函数中调函数funcmain函数20作实参穿func转开始执行func


main()应存 func()应存

20 x
20 x


func()执行x10存中x变10


10 x




func()执行printf(d x) 输出func函数应存中x值输出10 func函数执行结束返回main函数

main函数执行printf(d x)时输出main函数应存中x20



4
#include
int m4
int func(int xint y)
{ int m1
return(x*ym)
}
main()
{int a2b3
printf(d\nm)
printf(d\nfunc(ab)m)
}
运行结果:
4
1

整型变量m函数外定义m全局变量作范围定义位置开始直整程序结束funcmain函数访问m

程序首先执行main函数
执行printf(d\nm) 输出m中值4换行
执行printf(d\nfunc(ab)m)输出表达式func(ab)m值计算该表达式
需调函数func时mainab中23值作实参传递funcxy
程序开始转执行func函数时func中x2y3
执行int m1 句定义局部变量m赋值1 m作域复合
语句func函数体func函数体重限访问局部变量m
执行return(x*ym) return(2*31) 返回整数5
func函数返回main函数中调处
main函数中func(ab)值5func(ab)m541注意main函数中访问m全局变量m时main函数法访问func中mfunc中m作域


5
#include
int fun(int a int b)
{ if(a>b) return(a)
else return(b)
}
main()
{ int x15 y8 r
r fun(xy)
printf(rd\n r)
}
运行结果:r15
程序首先执行main函数
执行r fun(xy)func(xy)值赋r计算该表达式需调函数func时mainxy中158值作实参传递funcab
程序开始转执行func函数时func中a15b8
执行if语句判断if面表达式a>b成立执行相应操作return(a)返回
a值
func函数返回main函数中调处
main函数中func(xy)值1515赋r
执行printf(rd\n r) 输出r15

6
#include
int fac(int n)
{ int f1i
for(i1i ff * i
return(f)
}
main()
{ int js
scanf(d&j)
sfac(j)
printf(dd\njs)
}
果键盘输入3 运行结果: 36

程序首先执行main函数
执行r fun(xy)func(xy)值赋r计算该表达式需调函数func时mainxy中158值作实参传递funcab
程序开始转执行func函数时func中a15b8
执行if语句判断if面表达式a>b成立执行相应操作return(a)返回
a值
func函数返回main函数中调处
main函数中func(xy)值1515赋r
执行printf(rd\n r) 输出r15

7
#include
unsigned fun6(unsigned num)
{ unsigned k1
do
{ k*num10
num10
}while(num)
return k
}
main()
{ unsigned n26
printf(d\nfun6(n))
}
运行结果:12

程序首先执行main函数
执行printf(d\nfun6(n)) 输出表达式func(6)值计算该表达式需调
函数func时mainn中26作实参传递funcnum
程序开始转执行func函数时func中num26
执行dowhile语句
第1次循环
执行k*num10kk*(num10)1*(2610)6
执行num10numnum1026102
while面循环条件num时num2非0值表示循环条件成立
继续执行循环体时k6
第2次循环
执行k*num10kk*(num10)6*(210)12
执行num10numnum102100
while面循环条件num时num0表示循环条件成立
结束循环
执行return k 返回main函数中调处
执行main函数
继续执行printf(d\nfun6(n)) 输出12

8
#include
int max(int x int y)
main()
{ int abc
a7b8
cmax(ab)
printf(Max is dc)
}
max(int x int y)
{ int z
zx>y x y
return(z)
}
运行结果:
Max is 8

指针
1
# include < stdio h >
main ( )
{ int x[ ] {10 20 30 40 50 }
int *p
px
printf ( d *(p+2 ) )
}
运行结果:
30
首先定义整型数组xx长度5然定义指针变量pp进行初始化数组x址赋p时p中存放数组x首址数组中第元素x[0]址
然执行printf语句输出表达式*(p+2)值p+2表示p前指位置起始第2元素址a[2]址*(p+2)表示该址存放容a[2]值30输出30

2
#include
main( )
{ char s[]abcdefg
char *p
ps
printf(chc\n*(p+5))
}
运行结果:
chf
首先定义字符型数组s字符串abcdefgs进行初始化 然定义字符型指针变量p p进行初始化数组s址赋p时p中存放数组s首址数组中第元素s[0]址
然执行printf语句输出表达式*(p+5)值p+5表示p前指位置起始第5元素址a[5]址*(p+5)表示该址存放容a[5]值f 输出chf


3
#include
main ( )
{ int a[]{1 2 3 4 5}
int x y *p
pa
x*(p+2)
printf(d:d \n *p x)
}
运行结果
13
首先定义整型数组aa进行初始化 然定义整型变量xy整型指针变量p 数组a址赋p时p中存放数组a首址数组中第元素a[0]址执行x*(p+2)p+2表示p前指位置起始第2元素址a[2]址*(p+2)表示该址存放容a[2]值3然3赋x
然执行printf语句先输出表达式*p值时*p表示p指变量容a[0]值1输出号然输出x中值3

4
#include
main()
{ int arr[ ]{30252015105} *parr
p++
printf(d\n*(p+3))
}
运行结果:10

首先定义整型数组arrarr进行初始化 然定义整型指针变量p 数组arr址赋p时p中存放数组arr首址数组中第元素a[0]址
执行p++pp+1p+1表示p前指位置起始第1元素址arr[1]址然arr[1]址赋p执行完语句p指arr[0]指arr[1]
然执行printf语句输出表达式*(p+3)值p+3表示p前指位置起始(时p指arr[1])第3元素址arr[4]址*(p+3)表示该址存放容arr[4]值10 输出10

5
#include
main( )
{ int a[ ]{1 2 3 4 5 6}
int x y *p
p &a[0]
x *(p+2)
y *(p+4)
printf(*pd xd yd\n *p x y)
}
运行结果:
*p1 x3 y5
首先定义整型数组aa进行初始化 然定义整型变量xy整型指针变量p 数组元素a[0]址赋p
执行x*(p+2)p+2表示p前指位置起始第2元素址a[2]址*(p+2)表示该址存放容a[2]值3然3赋x
执行y *(p+4) p+4表示p前指位置起始第4元素址a[4]址*(p+4)表示该址存放容a[4]值5然5赋y
执行printf语句先输出表达式*p值时*p表示p指变量容a[0]值1输x值3输出y值5


6
#include
main( )
{ static char a[ ]Program *ptr
for(ptra ptr putchar(*ptr)
}
运行结果:
Porm
首先定义字符型数组aa进行初始化 然定义字符型指针变量p
执行for语句 ptra表达式1数字a址赋ptr表达式2(循环条件)ptr第1次执行循环体
执行putchar(*ptr) 输出*ptr应字符时ptr指数组中第1元素
a[0]*ptr表示a[0]中值’P’
执行完循环体转执行表达式3ptr ptr+2ptr+2表示ptr前指位
置起始第2元素址a[2]址然a[2]址赋ptra[2]
址等价a+2循环条件ptr第2次执行循环体
执行putchar(*ptr) 输出*ptr应字符时ptr指数组中第3元素
a[2]*ptr表示a[2]中值’o’
执行完循环体转执行表达式3ptr ptr+2ptr+2表示ptr前指位
置起始第2元素址a[4]址然a[4]址赋ptra[4]
址等价a+4循环条件ptr第3次执行循环体
执行putchar(*ptr) 输出*ptr应字符时ptr指数组中第5元素
a[4]*ptr表示a[4]中值’r’
执行完循环体转执行表达式3ptr ptr+2ptr+2表示ptr前指位
置起始第2元素址a[6]址然a[6]址赋ptra[6]址等价a+6循环条件ptr第4次执行循环体
执行putchar(*ptr) 输出*ptr应字符时ptr指数组中第7元素
a[6]*ptr表示a[6]中值’m’
执行完循环体转执行表达式3ptr ptr+2ptr+2表示ptr前指位
置起始第2元素址a[8]址然a[8]址赋ptra[6]址等价a+8循环条件ptr
7
#include
char s[]ABCD
main()
{ char *p
for(pspprintf(c s\n*pp)
}
运行结果:
A ABCD
B BCD
C CD
D D

首先定义字符型数组ss进行初始化 数组s全局变量效范围定义开始整程序结束

执行main函数
定义字符型指针p
执行for语句 ps表达式1数字s首址赋p表达式2(循环条件)p第1次执行循环体
执行printf(c s\n*pp)字符c形式输出*p应字符时p指
数组中第1元素s[0]*p表示a[0]中值’A’ 然字
符串s形式输出p中址首址整字符串输出ABCD
执行完循环体转执行表达式3p p+1p+1表示p前指
位置起始1元素址s[1]址然a[1]址赋p
s[1]址等价s+1循环条件p第2次执行循环体
执行printf(c s\n*pp)字符c形式输出*p应字符时p指
数组中第2元素s[1]*p表示s[1]中值’B’ 然字
符串s形式输出p中址首址整字符串时p指s[1]
s[1]开始次输出面字符串输出BCD
执行完循环体转执行表达式3p p+1p+1表示p前指
位置起始1元素址s[2]址然a[2]址赋p
s[2]址等价s+2循环条件p第3次执行循环体
执行printf(c s\n*pp)字符c形式输出*p应字符时p指
数组中第3元素s[2]*p表示s[2]中值’C’ 然字
符串s形式输出p中址首址整字符串时p指s[2]
s[2]开始次输出面字符串输出CD
执行完循环体转执行表达式3p p+1p+1表示p前指
位置起始1元素址s[2]址然s[2]址赋p
s[2]址等价s+3循环条件p第4次执行循环体
执行printf(c s\n*pp)字符c形式输出*p应字符时p指
数组中第4元素s[3]*p表示s[3]中值’D’ 然字
符串s形式输出p中址首址整字符串输出D
执行完循环体转执行表达式3p p+1p+1表示p前指
位置起始1元素址s[3]址然s[3]址赋p
s[3]址等价s+4循环条件p


结构体
1
#include
struct st
{ int x
int y
} a[2]{5 7 2 9}
main()
{
printf(d\na[0]y*a [1]x)
}
运行结果:
14

首先定义结构体stst中两整型成员xy
然定义st类型数组aa长度2数组中含两st类型元素分a[0]a[1] a进行初始化题储存序进行初始化5赋a[0]中x(a[0]x5) 7赋a[0]中y(a[0]y7) 2赋a[1]中x(a[1]x2) 9赋a[1]中y(a[1]y9)
执行main函数输出表达式a[0]y*a [1]x值7*2值


5 a[0]x a[0]
7 a[0]y
2 a[1]x a[1]
9 a[1]y

2
#include
main( )
{struct stu
{int num
char a[5]
float score
}m{1234wang895}
printf(dsfmnummamscore)
}
运行结果:
1234wang895

3
#include
struct cmplx
{ int x
int y
} cnum[2]{1 3 2 7}
main( )
{
printf(d\n cnum[0]y * cnum[1]x )
}
运行结果:6
第题解法
4
#include
struct abc
{ int a b c }
main()
{ struct abc s[2]{{123}{456}}
int t
ts[0]a+s[1]b
printf(d \nt)
}
运行结果:6

第题解法
三 程序填空
1.输入字符判断该字符数字字母空格字符
main( )
{ char ch
chgetchar()
if( ch>’a’&&ch<’z’|| ch>’A’&&ch<’Z’ )
printf(It is an English character\n)
else if( ch>’0’&&ch<’9’ )
printf(It is a digit character\n)
else if( ch ’ )
printf(It is a space character\n)
else
printf(It is other character\n) }
第1空:字符计算机中ASCII码形式存储输入字符ch中字符应ASCII码范围英文字母ASCII码范围参p377英文字母分写字母写字母处逻辑表达式表示ch中写字母者写字母表达式成立ch>97&&ch<122|| ch>65&&ch<90
需注意题区间应表达式写作97
第3空判断ch中否空格通ch中字符空格字符ASCII码判断判断表达式值否相等时关系符号赋值符号

2.列程序功输入整数中统计零整数数零整数数输入0结束输入ij放统计数请填空完成程序
   void main()
{ int ni0j0
printf(input a integer0 for end\n)
scanf(d&n)
while ( nn0 ) {
if(n>0) i i+1
else jj+1
}
printf(i4dj4d\nij)
}
题i记录零整数j记录零整数循环条件n(者n0)n0时执行循环体循环体中选择语句果n>0令i加1相令正整数数加1否(n<0)令j加1相令负整数数加1

3.编程计算1+3+5+……+101值
#include
void main()
{ int i sum 0
for (i 1 i<101 ii+2 )
sum sum + i
printf(sumd\n sum) }
for语句般形式详见p120
表达式1i 1循环变量赋初值循环1开始题1101终值101表达式2循环条件控制循环结束循环条件i<101表达式3循环变量增题
4.编程计算1+3+5…+99值
main()
{ int i sum 0
i1
while ( i<100 )
{ sum sum + i
Ii+2 }
printf(sumd\n sum)
}
5.键盘输入字符判断否英文字母
#include
void main()
{char c
printf(input a character)
cgetchar()
if(c> A’ &&c< Z’ || c>a’ &&c< z’) printf(Yes\n)
else printf(No)
}
6 面程序功a数组中查找x值相元素位置请填空
   #include
void main()
{ int a[10]ix
printf(input 10 integers:)
    for(i0i<10i++)
scanf(d&a[i])
printf(input the number you want to find x:) 
scanf(d &x )
for(i0i<10i++)
if( xa[i] )
break
if( i<10 )
printf(the pos of x is:d\ni)
else printf(can not find x\n)
}
7.程序读入20整数统计非负数数计算非负数
#include
main( )
{ int i a[20] s count
scount0
for(i0 i<20 i++)
scanf(d &a[i] )
for(i0 i<20 i++)
{ if( a[i]<0 ) continue
s+a[i]
count++
}
printf(sd\t countd\n s count)
}

8 输入正整数n (1
#include
int main(void){
int i index k n temp
* 定义1数组a10整型元素*
printf(Enter n )

printf(Enter d integers n)
for(i 0 i < n i++)
scanf(d &a[i])
for(k 0 k < n1 k++){ * n数排序 *
index k
for( )
if( ) index i

}
printf(After sorted )
for(i 0 i < n i++) * 输出n数组元素值 *

return 0}

四 程序改错
面程序划线处语法逻辑错误请找出改正符合题意执行结果
1.求1234n
  main()
{ long int sum 定义变量语句错误常见考点两:(1)变量类型(2)定义存放运算结果变量时定赋初值般赋值0者循环初值
int ni1
scanf(dn) scanf语句错误常见考点两:(1)格式声明符号面欲赋值变量类型致题dn类型int致(详见p6978)(2)变量前面址符号&
printf(\n)
while(i{ sumsum*i sum赋初值处法计算sum*i
i++
}
printf(sumdsum) printf语句错误常见考点1:格式声明符号面欲输出变量类型致题dsum类型long int致应改ld(详见p6978)

}
sum应初始化 加入sum1
第四行改:scanf(d&n)
第六行改:while(i第十行改:printf(sumldsum)

2.求数组中值标
main( )
{ int maxjm
int a[5]
for(j1j<5j++) j1循环变量j赋初值1时j作数字元素逻辑址标输出时候a[1]开始输出法输出a[0]应j赋初值0相应循环条件改j<5者j<4控制循环执行5次

scanf(da) scanf语句错误常见考点两:(1)格式声明符号面欲赋值变量类型致题da类型int致(详见p6978)(2)变量前面址符号&

maxa[0]
for(j1j<5j++) 修改思路for语句
if(max>a[j])
{ maxa[j]
mj
}
printf(标:d\n值d j max) jfor语句循环变量for语句执行完j中值6非值标执行某次循环较程中时值标存m里
}
第四行改:for(j0j<5j++)
第五行改:scanf(d&a[j])
第七行改:for(j1j<5j++)
第八行改:if(max第十三行改:printf(标:d\n值d mmax)



3.函数求两数
sum(xy) 函数定义般形式p173174
{ float z
zx+y
return return语句面返回0常量变量表达式值
}
main()
{ float ab
int c 定义变量语句错误常见考点两:(1)变量类型(2)定义存放运算结果变量时定赋初值般赋值0者循环初值
scanf(ff&a&b)
csum(ab)
printf(\nSum is fsum)
}
第行改:float sum(float x float y )
第四行改:return(z)者return z
第八行:float c
第十行:printf(\nSum is fc)

4. 程序读入20整数统计非负数数计算非负数
#include stdioh
main()
{
int i s count n20
int a[n] 数组定义般形式详见p143 中常量表达式变量
scount1
for( i1 i<20 i ) for语句格式三表达式间分号分号省略
scanf(d a[i] ) scanf语句错误常见考点两:(1)格式声明符号面欲赋值变量类型致题dn类型int致(详见p6978)(2)变量前面址符号&
for(i0i<20i++)
{
if(a[i]<0)
break breakcontinue区 p128 改错题中错误出现break语句通常break换continue反错误出现continue通常换break
s +a[i]
count++
}
printf(sf countf\n s count) printf语句错误常见考点1:格式声明符号面欲输出变量类型致
}

答案:int a[20]
scount0
for(i0i<20i)
scanf(d&a[i])
continue
printf(sd countd\nscount)

5 键盘输入整数x值输出y值
main()
{ float xy
scanf(d&x)
y35+x
printf(yd)
}
正确 int x float y
printf(yfy)

6 编程计算面分段函数 输入x 输出y

main()
{ int xy
printf(\n Input x\n)
scanf(d x) 错误题scanf
if(x<0)
yx1
else if(x>0||x<10) ||表示逻辑左边表达式成立者右边表达式成立时整表达式成立 &&表示逻辑左边表达式右边表达式时成立时整表达式成立处逻辑表达式表示x区间[010] 应改逻辑符号
y2x1 C语言中号省略*表示法运算
else
y3x1 C语言中号省略*表示法运算
printf(yd&y) printfscanfprintf面出变量名列表表达式列表需址符号
}
第处改:scanf(d& x)
第二处改:x>0&&x<10
第三处改:y2*x1
第四处改:y3*x1
第五处改:printf(ydy)


7 求100~300间3整数
main()
{ int n
long sum 定义变量语句错误常见考点两:(1)变量类型(2)定义存放运算结果变量时定赋初值 般赋值0者循环初值
for(n100n<300n++) for语句格式三表达式间分号分号省略
{
if(n30) 赋值符号右边值赋左边变量 关系符号判断两值否相等 改错中if面表达式中赋值符号常见考点
sumsum*n
}
printf(ld sum)
}
第处改:long sum0
第二处改:for(n100n<300n++)
第三处改:if(n30)
第四处改:sumsum+n
8 求表达式值
#include
#include
int fun(int x int y)
main()
{ int ab float f
scanf(ddab) 改错第1题中scanf错误相
if(ab>0){ C语言中号省略*表示法运算
fun(ab) 调带返回值函数应函数返回值保存变量里
printf(The result isd\n &f) 第6题中printf错误相
}
else printf(error)}
fun(x y) 定义函数般形式p173174
{ float result
result sqrt(a+b)
return return语句面返回0常量变量表达式值
}
第处改:if(a*b>0)
第二处改:f fun(ab)
第三处改:printf(The result isd\nf)
第四处改:float fun(int x int y)
第五处改:f fun(ab)
第六处改:result sqrt(a*b)
第七处改:return result
五 编程题
1输入2整数求两数方输出
#include
int main(void)
{ intt a bs
printf(please input ab\n)
scanf(dd&a&b)
sa*a+b*b
printf(the result is d\ns)
return 0
}
2 输入圆半径rr>=0时计算输出圆面积周长否输出提示信息
#include
#define PI 314
int main(void)
{ double r area girth
printf(please input r\n)
scanf(lf&r)
if (r>0)
{ area PI*r*r
girth 2*PI*r
printf(the area is 2f\n area)
printf(the girth is 2f\n girth)}
else
printf(Input error\n)
return 0
}
3已知函数yf(x)编程实现输入x值输出y值
2x+1 (x<0)
y 0 (x0)
2x1 (x>0)

#include
void main()
{ int xy
scanf(d&x)
if(x<0) y2*x+1
else if(x>0) y2*x1
else y0
printf(dy)
}
4键盘输入百分制成绩score列原输出等级:score≥90等级A80≤score<90等级B70≤score<80等级C60≤score<70等级Dscore<60等级E
#include
void main(){
int data
char grade
printf(Please enter the score)
scanf(d &data)
switch(data10)
{ case 10
case 9 grade’A’ break
case 8 grade’B’ break
case 7 grade’C’ break
case 6 grade’D’ break
default grade’E’
}
printf(the grade is cgrade)
}

5 编程序月根月网时间计算网费计算方法:

求输入月网时数显示该月总网费(6分)
#include
void main()
{ int hour
float fee
printf(please input hour\n)
scanf(d&hour)
if(hour<10)
fee30
else if(hour>10&&hour<50)
fee3*hour
else feehour*25
printf(The total fee is ffee)
}

6 键盘输入10整数统计中正数负数零数屏幕输出
#include
void main( ) {
int a ip0n0z0
printf(please input number)
for(i0i<10i++){
scanf(d&a)
if (a>0) p++
else if (a<0) n++
else z++
}
printf(正数:5d 负数:5d零:5d\npnz)
}
7编程序实现求110间数积输出
#include
void main( )
{ int i
long sum1
for(i1 i<10 ii+1)
sumsum*i
printf(the sum of odd is ldsum)
}
8 键盘输入10数求均值
#include
void main(){
int aisum0
float ave
for(i0i<10i++){
scanf(d&a)
sum+a
}
ave(float)sum10
printf(ave f\n ave)
}
9编程序实现求11000间奇数输出
#include
void main( )
{ int i sum0
for(i1 i<1000 ii+2)
sumsum+i
printf(the sum of odd is dsum)
}

10分数序列:21325385138……编程求序列前20项
#include
void main(){
int itn20
float a2b1s0
for(i1i{ss+ab
ta
aa+b
bt
}
printf(sum62fs)
}


11.键盘输入两数求出值(求函数完成求值函数中调该函数)
#include
float max(float xfloat y)
void main()
{ float abm
scanf(ff&a&b)
mmax(ab)
printf(Max is f\nm)
}
float max(float xfloat y)
{
if (x>y)
return x
else
return y
}

12 编写程序中定义函数判断整数否素数函数输入数输出否素数
#include
#include
int IsPrimeNumber(int number)
{ int i
if (number < 1)
return 0
for (i2 i { if ((number i) 0)
return 0 }
return 1}
void main()
{ int n
printf(Please input n)
scanf(d&n)
if(IsPrimeNumber(n))
printf(\nd is a Prime Numbern)
else printf(\nd is not a Prime Numbern)}


13键盘输入n数存放数组中值第数交换输出交换n数
#include
int main(void){
int iniIndextemp
int a[10]
printf(Enter n )
scanf(d &n)
printf(Enter d integers\n )
for(i0i scanf(d &a[i])
iIndex0
for(i1i if(a[i] }
tempa[0]a[0]a[iIndex]a[iIndex]temp
for(i0i printf(5d a[i])
printf(\n)
return 0
}


第二种解法 利函数
#include

int comp(int arry[] int n)
{
int iindextemp
printf(数组赋值:\n)
for(i0i { scanf(d&arry[i])
}
for(i1index0i { if(arry[i] { indexi
}
}
temparry[0]arry[0]arry[index]arry[index]temp
for(i0i { printf(d arry[i])
}
return 0
}
main()
{ int n
int a[10]
printf(n赋值:\n)
scanf(d&n)
comp(an)}






仅供参考
文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

C语言代码大全

 乘法口诀表 #include <stdio.h> #include <conio.h> void main(void) { int i,j,x,y; clrscr(); printf(“\n\n * * * 乘法口诀表 * * * \n\n“); x=9; y=5; for(i=1;i<=9;i++) { gotoxy(x,y); printf(“%2d “,i);

山***1 5年前 上传1774   0

专升本C语言题及答案

C语言精编100题一、单选题1. 由C语言编写的代码程序( )A. 可直接执行 B. 是一个源程序C. 经过编译即可执行 D. 经过编译解释才能执行2. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )A. 大写字母 B. 中划线 C. 数字字符 D. 下划线3. 下列选项中,不能用作标识符的是( ) A. _

文***享 3年前 上传1182   0

(1小时学会C语言51单片机)C语言入门教程

△Victor Hugo 维克多?雨果相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚, 更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能

豆***2 4年前 上传747   0

技能高考专题:C语言练习

第1题 (20.0分) 题号:332 难度:难 第3章/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:求如下表达式:

小***库 3年前 上传627   0

电脑编程 所有C语言题库

试卷编号:2203所属语言:C语言试卷方案:所有C语言题库试卷总分:1220分共有题型:1种一、程序填空 共122题 (共计1220分)第1题 (10.0分) 题号:558 难度:中 第2章/*-------------------------------------------------------【程序填空】-------

小***库 4年前 上传984   0

c语言实验报告

c语言实验报告  学号:__________    姓名:__________    班级:__________    日期:__________   指导教师:__________    成绩:__________  实验一  上机操作初步和简单的C程序设计  一、 实验目的  1、熟悉C语言运行环境Turbo C++3.0  2、会简单的程序调试  3、熟悉C语言

极***速 11年前 上传806   0

C语言上机题库WORD版

C语言习题集3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。输入格式:B输出格式:26#include<stdio.h>int main(void){ char ch; int sum; ch=getchar(); sum=ch-'A'+10+15; printf(“%d\n“,sum);

文***享 3年前 上传911   0

C语言作业:学通讯录

学生通讯录一、 语言和环境1. 实现语言:C语言。2. 环境要求:devC++。二、 实现功能开发一套学生通讯录C语言系统,具体实现如下功能:1. 打开系统显示欢迎界面,以及功能菜单,用户输入需要操作的功能序号,根据用户选择的需要进行相应界面 如图1所示。图1 功能菜单2. 当用户输入序号1时进入到录入学生信息界面,用户输入学生的姓名,性别,年龄和电话,输入完毕保存学生信息,并

小***库 3年前 上传746   0

C语言知识点总结

C语言最重要的知识点总体上必须清楚的: 1)程序结构是三种: 顺序结构 、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址. 4)bit是位 是指为0 或者1。 byte 是指字节, 一个字节 =

文***享 3年前 上传621   0

C语言实验报告《指针》

C语言实验报告《指针》  学号:__________    姓名:__________    班级:__________    日期:__________   指导教师:__________    成绩:__________  实验五  指针  一、 实验目的  1、掌握指针的概念、会定义和使用指针变量  2、掌握指向数组的指针变量  3、掌握字符串指针的使用  

D***1 11年前 上传973   0

C语言试题库

C 语言试题库 阅读说明*1 ————为题号A ————为答案-个C程序的执行是从 A)本程序的main函数开始,到main函数结束 B)本程序文件的第-个函数开始,到本程序文件的最后-个函数结束 C)本程序的main函数开始,到本程序文件的最后-个函数结束 D)本程序文件的第-个函数开始,到本程序main函数结束 试题库题目*

z***u 1年前 上传680   0

c语言高级面试题

整个测试遵循以下的约定:u       假定在所有的程序中必须的头文件都已经被正确包含。考虑如下的数据类型:u       char 为1个字节u       int 为4个字节u       long int 为4个字节u       float 为4个字节u       double 为个8字节u       long double 为 8个字节u       指针为4个字

望***3 3个月前 上传113   0

C语言实验报告《数组》

C语言实验报告《数组》  学号:__________    姓名:__________    班级:__________    日期:__________  指导教师:__________    成绩:__________  实验三  数组  一、 实验目的  1、掌握一维和二维数组的定义、赋值和输入输出  2、掌握字符数组和字符串数组的使用  3、掌握与数组有关的排

我***海 11年前 上传893   0

C语言综合实验2报告

实验报告实验名称 小型学生信息管理系统 实验项目 编写一学生信息管理系统,用来管理学生基本信息及成绩信息专业班级 姓名 学号 指导教师 成绩 日期 一、

文***品 3年前 上传459   0

C语言论文致谢

C语言论文致谢  在硕士学位论文即将完成之际,我想向曾经给我帮助和支持的人们表示衷心的感谢。首先要感谢我的导师曹计昌教授,他在学习和科研方面给了我大量的指导,并为我们提供了良好的科研环境,让我学到了知识,掌握了科研的方法,也获得了实践锻炼的机会。他严谨的治学态度、对我的严格要求以及为人处世的坦荡将使我终身受益。除此之外,他对我生活的关心和照顾也使得我得以顺利完成研究生的学业。在此祝愿他身体健

自***熟 12年前 上传628   0

C语言程序设计习题试题集

《C语言程序设计》精品课件试题目录(按住CTRL键点击超链)单项选择题………………………第002页阅读程序题………………………第018页程序填空题………………………第039页编写程序题………………………第070页《高级语言程序设计》课程设计制作小组2007年一、单项选择题导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意

文***享 1年前 上传5599   0

C语言实验报告《函数》

C语言实验报告《函数》  学号:__________    姓名:__________    班级:__________    日期:__________  指导教师:__________    成绩:__________  实验四  函数  一、 实验目的  1、掌握函数定义、调用和声明的方法  2、掌握实参和形参之间的传递方式  3、函数的嵌套调用  二、 实

t***g 12年前 上传1382   0

国开电大《C语言程序设计》答案

形考1在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(  )。选择一项:A. main 正确恭喜你,答对啦!!B. MAIN C. name D. function .题目2正确获得2.00分中的2.00分 标记题目题干C语言源程序文件的缺省扩展名为(  )。选择一项:A. cpp B. exe C.

3265912 1年前 上传418   1

C语言课程设计学生考勤系统

设计任务:C语言课程设计任务书题目:学生考勤系统设计功能:学生考勤系统应包含各班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、出勤情况等。本系统可模拟考勤过程,记录考勤结果,并能够在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。分步实施:1、 初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;2、 建立一个文件,将每条记录信息写入文件中并能显示于

文***品 2年前 上传539   0

c语言课程设计总结5篇

c语言课程设计总结5篇c语言课程设计总结(一):  c语言课程设计总结心得  经过一个学期的学习,我对C语言有了必须的了解。C语言是学习计算机科学的基础,作为一名计算机专业学生,掌握C语言更是毋庸置疑。在上课之前,就经常听同学说,C语言很难学,确实,刚开始听课时觉得老师不知所云。但是,发现对后续资料的预习后,前面的疑团都迎刃而解,这让我对C语言的学习更有信心。  计算机最重要的就是上机操

四***廷 3年前 上传1313   0

NOIP2008提高组初赛(C语言)试题及答案

第十四届(NOIP2008)信息学奥赛联赛提高组C语言初赛试题● ●  全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效  ●●一、 单项选择题 (共10题,每题1.5分,共计15分。每题有且仅有一个正确答案)。1. 在以下各项中,(C  )不是操作系统软件。 A. Solaris   B. Linux    C. Sybase     D. Windows Vista      E

文***享 3年前 上传597   0

C语言程序设计说课教案

《C语言程序设计》说课教案从以下方面说明:一、 课程性质、地位二、 教学对象分析及要求三、 课程体系四、 课程的重点、难点及突破五、 教学方法与教学手段六、 学生考核七、 教学计划一、 课程性质、地位 1.课程的性质  《C语言程序设计》课程是高职高专通信类和电子信息类各专业职业素质必修课,旨在培养高职学生运用计算机进行逻辑思维的能力,掌握运用C语言编程来解决岗位

文***享 1年前 上传350   0

专升本C语言历年考试题及答案

专升本C语言历年考试题及答案一、单项选择题1. ___D___是合法的用户自定义标识符。A、 b-b B、float C、<fr> D、 _isw 2. 若变量已正确定义并赋值,表达式___B___不符合C语言语法。A、a*b/c; B、3.14%2 C、2, b

文***享 3年前 上传1370   0

2021年c语言课程设计小结

 2021年c语言课程设计小结撰写人:___________日 期:___________2021年c语言课程设计小结关键词:图书管理系统关系模型功能模块随着社会的进步与发展,资源高效利用提高效率越来越受到人们的___.图书管理也提出这样的要求,因此图书管理的数字化越来越受到大众的青睐.图书管理系统是现代图书管理工具中的重要组成部分。它广泛应用于图书馆管理,力求开发出一套严谨、

x***o 3年前 上传633   0

C++语言课程设计一迷你高尔夫

C++语言课程设计一迷你高尔夫一、实验内容 玩家通过按下键盘上的上下左右方向键控制球的移动,使其最终到达出口则游戏通关。 要求如下:1、 游戏分成3关,第一关、第二关、第三关界面图如下:第一关第二关第三关2、 启动游戏进入第一关,胜利后进入第二关,如果第三关通关,则游戏重新回到第一关。3、 游戏玩法是通关控制键盘上的上下左右方向键控制球的运动,单击方向键,则球获得一个向该

文***品 3年前 上传620   0

© 2006-2021 香当网   

  浙公网安备 33018302001162号
浙ICP备09019653号-34