《c语言程序设计》复习提纲与练习.docx
- 文档编号:12976328
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:16
- 大小:20.56KB
《c语言程序设计》复习提纲与练习.docx
《《c语言程序设计》复习提纲与练习.docx》由会员分享,可在线阅读,更多相关《《c语言程序设计》复习提纲与练习.docx(16页珍藏版)》请在冰点文库上搜索。
《c语言程序设计》复习提纲与练习
〈C语言〉复习提纲
第1章C语言概述
1.了解C语言的发展;
2.掌握C程序的基本结构;
3.了解在TurboC下编辑、编译、连接和运行一个C程序的方法。
第2章算法
了解算法的概念和流程图
第3章数据类型、运算符、表达式、赋值语句和输入/输出
1.掌握C语言的基本语法:
C语言中保留字、标识符的命名规定、常量的合法表示形式;
C语言的基本数据类型、定义变量及赋值方法;
2.掌握运算符的功能、优先级、表达式及表达式的求值;
注意以下运算符:
/、%、++、--以及复合赋值符的优先级。
第4章顺序程序设计
1.掌握getchar()函数;
2.掌握printf()函数,正确使用主要格式转换符:
%d,%md,%ld,%f,%m.nf,%c,%s;
3.掌握scanf()函数,正确使用主要格式转换符:
%d,%f,%c,%s;特别要注意输入时数据的分隔。
第5章选择结构程序设计
1.了解C语言表示逻辑量的方法;
2.正确使用关系、逻辑运算符和表达式,注意短路运算符&&和||。
3.熟练掌握if、switch语句的使用;要注意if和else的配对关系,switch语句中的break的作用。
第6章循环控制
1.熟悉while、do-while、for语句的形式、流程图;
2.掌握用三种语句实现循环控制的方法;
3.了解break语句的作用。
4.掌握例6.6、6.7、6.8、6.9
第7章数组
1.掌握一维/二维数组的定义、赋值、初始化和输入、输出方法;
2.掌握一维数组的有关应用:
求最大值、平均值、排序(例7.3);
3.掌握字符数组和字符串处理函数的使用;
4.读懂例7.2、7.3。
第8章函数
1.掌握定义函数的方法;
2.掌握函数调用方法,特别注意实参与形参的对应关系以及”值传递”方式;
3.了解函数声明的方法和使用;
4.了解函数的嵌套调用;
5.理解递归函数的执行过程;
6.理解数组作函数参数时实参与形参的传递方式;
7.了解局部变量/全局变量,动态变量/静态变量的概念,要理解p.173例题8.17.
第9章编译预处理
掌握带参数的宏定义
第10章指针
1.掌握指针的概念,会定义和使用指针变量;
2.掌握指针作为函数参数的作用;
3.学会使用数组的指针和指向数组的指针变量;
4.学会使用字符串的指针和指向字符串的指针变量.
第11章结构体和共用体
1.掌握结构体类型、结构体变量的定义和使用;
2.掌握结构体类型数组的概念和应用;
3.掌握结构体变量、结构体数组的指针的使用;
4.了解结构体指针作为函数参数的作用;
5.掌握共用体类型、共用体变量的定义以及共用体变量的存储形式;
练习题
第3,4章
1.设x、y、z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为
A)4B)16C)32D)52
2.设有如下的变量定义:
inti=8,a,b;
doublex=1.42,y=5.2;
则以下符合C语言语法的表达式是
A)a+=a-=(b=4)*(a=3)B)x%3;
C)a=a*3=2D)y=float(i)
3.假定有以下变量定义:
intk=7,x=12;
则能使值为3的表达式是
A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)
4.以下选项中属于C语言的数据类型是
A)复数型B)逻辑型C)双精度型D)集合型
5.在C语言中,不正确的int类型的常数是
A)32768B)0C)037D)0xAF
6.设有以下变量定义,并已赋确定的值
charw;intx;floaty;doublez;
则表达式:
w*x+z-y所求得的数据类型为[]。
7.若变量已正确定义并赋值,下面符合C语言语法的表达式是
A)a:
=b+1B)a=b=c+2C)inta=5%3D)a=a+7=c+b
8.设有intx=11;则表达式(x++*1/3)的值是
A)3B)4C)11D)12
9.下列程序的输出结果是
A)3B)3.2C)0D)3.07
main()
{doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
10.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是
11.若变量a、i已正确定义,且i已正确赋值,合法的语句是
A)a==1B)++i;C)a=a++=5;D)a=int(i);
A)1B)2C)2.0D)2.5
12.C语言中运算对象必须是整型的运算符是
A)%=B)/C)=D)〈=
13.若有以下程序段,
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是
A)0B)0.5C)1D)2
14.以下所列的C语言常量中,错误的是
A)0xFFB)1.2e0.5C)2LD)‘\72’
15.下列选项中,合法的C语言关键字是
A)VARB)cherC)integerD)default
16.有如下程序
main0
{inty=3,x=3,z=1;
printf(“%d%d\n”,(++x,y++),z+2);
}
运行该程序的输出结果是
A)34B)42C)43D)33
17.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是
A)-3B)9C)-12D)6
18.以下程序的输出结果是【】
main()
{inta=1,b=2;
a=a+b;b=a-b;a=a-b;
printf(“%d,%d\n”,a,b);
}
19.若有定义:
inta=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为
A)1.4B)1C)2.0D)2
20.若变量a是int类型,并执行了语句:
a=‘A'+1.6;,则正确的叙述是
A)a的值是字符CB)a的值是浮点型
C)不允许字符型和浮点型相加D)a的值是字符‘A’的ASCII值加上1。
21.以下选项中不属于C语言的类型的是
A)signedshortimtB)unsignedlongint
C)unsignedintD)longshort
22.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
A)6.500000B)6C)5.500000D)6.000000
23.若有以下程序:
main()
{intk=2,i=2,m;
m=(k+=i*=k);printf(“%d,%d\n”,m,i);
}
执行后的输出结果是
A)8,6B)8,3C)6,4D)7,4
第5章
(1).语句:
printf("%d",(a=2)&&(b=-2);的输出结果是
A)无输出B)结果不确定C)-1D)1
(2).当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是
A)c=b=a;B)(a=c)‖(b=c);
C)(a=c)&&(b=c);D)a=c=b;
(3).设x、y、t均为int型变量,则执行语句:
x=y=3;t=++x||++y;后,y的值为
A)不定值B)4C)3D)1
(4).若有定义:
inta=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是[]。
c=(a-=(b-5));
c=(a%11)+(b=3);
(5)表示“整数x的绝对值大于5”时值为“真”的C语言表达式是[]。
(6).已有定义:
intx=3,y=4,z=5;,则表达式!
(x+y)+z-1&&y+z/2的值是
A)6B)0C)2D)1
(7)能正确表示逻辑关系:
“a≥=10或a≤0”的C语言表达式是
A)a>=10ora<=0B)a>=0|a<=10C)a>=10&&a<=0D)a>=10‖a<=0
(8)以下程序的输出结果是
A)-11B)01C)10D)00
main()
{inta=-1,b=1,k;
if((++a<0)&&!
(b--<=0))
printf("%d%d\n",a,b);
else
printf("%d%d\n",b,a);
}
(9)若从键盘输入58,则以下程序输出的结果是【】。
main()
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
(10)若执行以下程序时从键盘上输入9,则输出结果是
A)11B)10C)9D)8
main()
{intn;
scanf(“%d”,&n);
if(n++<10)printf(“%d\n”,n);
elseprintf(“%d\n”,n--);
}
(11)有如下程序
main0
{intx=1,a=0,b=0;
switch(x){
case0:
b++;
case1:
a++
case2:
a++;b++
}
printf(“a=%d,b=%d\n”,a,b);
}
该程序的输出结果是
A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2
(12)有如下程序
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x<10.0)y=1.0/x;
elsey=1.0;
printf(“%f\n”,y);
}
该程序的输出结果是
A)0.000000B)0.250000C)0.500000D)1.000000
(13).若有定义:
floatw;inta,b;则合法的switch语句是
A)switch(w)B)switch(a);
{case1.0:
printf("*\n");{case1printf("*\n");
case2.0:
printf("**\n");case2printf("**\n");
}}
C)switch(b)D)switch(a+b);
{case1:
printf("*\n");{case1:
printf("*\n");
default:
printf("\n");case2:
printf("**\n");
case1+2:
printf("**\n");default:
printf("\n");
}}
14.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是。
main()
{inta,b,c,d;
scanf(“%d,%d,%d%d”,&a,&b&c&d);
…
}
A)1□2□3□4B)1□2□3,4C)1,2,3,4D)1,2,3□4
15.执行下面的程序后,输出结果是。
main()
{inta=1234;
floatb=56.67821;
charch=97;
printf(“a=%2d,b=%.2f,ch=%c\n”,a,b,ch+3);
}
第6章
1.以下循环体的执行次数是()
A)3B)2C)1D)0
main()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)
printf("%d\n",i);
}
2.有如下程序
main()
{inti,sum;
for(i=1;i<=3;sum++)
sum+=i;
printf(“%d\n”,sum);
}
该程序的执行结果是()
A)6B)3C)死循环D)0
3.有如下程序
main0
{intx=23;
do{
printf(“%d”,x--);
}while(!
x);
}
该程序的执行结果是
A)321B)23C)不输出任何内容D)陷入死循环
4.有以下程序段
intk=0;
while(k=1)k++;
while循环执行的次数是
A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次
5.以下程序执行后sum的值是
A)15B)14C)不确定D)0
min()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf(“%d\n”,sum);
}
6.有以下程序段
intx=3;
do
{printf(“%d”,x-=2);}
while(!
(--x));
其输出结果是
A)1B)30C)1–2D)死循环
7.若输入字符串:
abcde<回车>,则以下while循环体将执行[]次。
While((ch=getchar())==’e’)printf(“*”);
8.下面程序的功能是:
计算1到10之间奇数之和及偶数之和,请填空。
#include
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
[];
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);
}
9.有以下程序段
intn=0,p;
do{scanf(“%d”,&p);
n++;
}while(p!
=12345&&n<3);
此处do—while循环的结束条件是
A)P的值不等于12345并且n的值小于3
B)P的值等于12345并且n的值大于等于3
C)P的值不等于12345或者n的值小于3
D)P的值等于12345或者n的值大于等于3
10.以下程序运行后的输出结果是[]。
main()
{intx=15;
while(x>10&&x<50)
{x++;
if(x/3!
=0){x++;break;}
elsecontinue;
}
printf(“%d\n”,x);
}
11.以下程序中,while循环的循环次数是
main()
{inti=0;
while(i<10)
{if(i<1)continue;
if(i==5)break;
i++;
}
......
}
A)1B)10C)6D)死循环,不能确定次数
12.以下程序的输出结果是[]
main()
{inta=0,i;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
printf("%d\n",a);
}
13.有如下程序
main0
{intn=9;
while(n>6)
{n--;printf(“%d”,n);}
}
该程序段的输出结果是
A)987B)876C)8765D)9876
14.下面程序的功能是:
输出100以内能被3整除且个位数为6的所有整数,请填空。
#include
main()
{inti,j;
for(i=0;[];i++)
{j=i*10+6;
if([])continue;
printf("%d",j);
}
}
15.以下程序的功能是:
按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{intn,k;
floatscore,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{for(k=1;k<=4;k++)
{scanf(“%f”,&score);sum+=score;}
ave=sum/4.0;
printf(“NO%d:
%f\n”,n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。
这条语句是
A)sum=0.0;B)sum+=score;
C)ave=sun/4.0;D)printf(“NO%d:
%f\n”,n,ave);
下面的程序是求满足下列条件的四位数:
该数是完全平方数;第一、三位数字之和为10,第二、四位数字之积为12。
请填空。
main()
{inti,j,a,b,c,d;
for(i=32;i<=99;i++)
{[]
a=j/1000;
b=j/100-a*10;
c=[];
d=j%10;
if([])
printf(“%d”,j);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言程序设计 语言程序设计 复习 提纲 练习
![提示](https://static.bingdoc.com/images/bang_tan.gif)