09级《C程序设计》 期末复习提纲.docx
《09级《C程序设计》 期末复习提纲.docx》由会员分享,可在线阅读,更多相关《09级《C程序设计》 期末复习提纲.docx(6页珍藏版)》请在冰豆网上搜索。
09级《C程序设计》期末复习提纲
《C程序设计》期末复习提纲
●考试形式:
闭卷
●考试时间:
120分钟
●考试题型:
一、单选题:
(25题,共50分)
二、判断题:
(10题,共10分)
三、程序阅读,直接写出运行结果:
(5题,共20分)
四、程序补充填空题:
(5题,共20分)
●复习提纲:
第一章:
C语言概述
1:
C程序的结构特点;
第三章:
1:
判断是否为合法的标识符;
2:
实型常量(指数形式)、字符常量、字符串常量的表示方法;
3:
判断是否为合法的转义字符;
4:
算术、赋值和逗号运算符及其表达式(含自增、自减操作)
5:
三种基本数据类型(int,float,char)在内存占的字节数;可以取值范围(int,unsigned);
第四章:
1:
字符的输入输出(putchar,getchar)
2:
格式输入输出(printf,scanf),掌握格式符(%d,%f,%c,%s)
题型举例:
1)设有如下的变量定义:
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)
2)在C语言中,要求参加运算的数必须时整数的运算符是。
A)/B)*C)%D)=
3)是非法的C语言转义字符。
A)‘\b’B)‘\0xf’C)‘\037’D)‘\’’
4)若有以下程序:
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)对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则应按方式输入数据。
intk1,k2,k3,k4;
scanf(“%d%d”,&k1,&k2);
scanf(“%d,%d”,&k3,&k4);
A)1020↙B)1020↙C)10,20↙D)1020↙
1020↙1020↙10,20↙10,20↙
答案:
1)A2)C3)B4)C5)D
第五章:
1:
关系运算符、关系表达式;逻辑运算符、逻辑表达式;条件运算符;
2:
if语句,switch语句的格式和应用;break语句的使用;
3:
混合运算的表达式中各种运算的优先级和结合方向
题型举例:
1)以下程序片段。
main()
{intx=0,y=0,z=0;
if(x=y+z)
printf(“***”);
else
printf(“###”);
}
A)有语法错误,不能通过编译B)输出:
***
C)可以编译,但不能通过连接,所以不能运行D)输出:
###
2)能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是。
A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B)(x>=1)||(x<=10)||(x>=200)||(x<=210)
C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)
D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)
答案:
1)D2)C
第六章:
1:
指定次数的循环(for循环)、while循环、do-while循环的形式和使用;循环结束条件、循环控制变量的使用、指定次数循环的提前结束方法。
2:
break,continue在循环中的区别和使用。
题型举例:
1)以下程序段的循环次数是。
for(i=2;i==0;)printf(“%d”,i--);
A)无限次B)0次C)1次D)2次
2)下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择填空。
main()
{intm=0,n=0;
charc;
while((【】)!
=’\n’){
if(c>=’A’&&c<=’Z’)m++;
if(c>=’a’&&c<=’z’)n++;
}
}
A)c=getchar()B)getchar()C)c==getchar()D)scanf(“%c”,&c)
3)下述语句执行后,变量k的值是。
intk=1;
while(k++<10);
A)10B)11C)9D)无限循环,值不定
4)语句while(!
E);中的表达式!
E等价于。
A)E==0B)E!
=1C)E!
=0D)E==1
5)以下程序段。
intx=-1;
do
{x=x*x;}
while(!
x);
A)是死循环B)循环执行2次C)循环执行1次D)有语法错误
6)写出下面程序运行的结果。
main()
{inti,j,k=19;
while(i=k-1){
k-=3;
if(k%5==0){i++;continue;}
elseif(k<5)break;
i++;
}
printf(“i=%d,k=%d\n”,i,k);
}
答案:
1)B2)A3)B4)A5)C6)i=6,k=4
第七章:
1:
一维数组的定义和初始化格式;一维数组的引用;
2:
二维数组的定义和初始化格式;
3:
字符串的定义和使用
4:
字符串处理函数strcat()、strcpy()、strcmp()的意思和使用
题型举例:
1)以下能对二维数组a进行正确初始化的语句是。
A)inta[2][]={{1,0,1},{5,2,3}};
B)inta[][3]={{1,2,3},{4,5,6}};
C)inta[2][4]={{1,2,3},{4,5},{6}};
D)inta[][3]={{1,0,1},{},{1,1}};
2)下面是对s的初始化,其中不正确的是。
A)chars[5]={“abc”};B)chars[5]={‘a’,’b’,’c’};
C)chars[5]=””;D)chars[5]=”abcdef”;
3)下面程序的输出结果是。
main()
{charch[7]=”12ab56”;
inti,s=0;
for(i=0;ch[i]>‘0’&&ch[i]<=’9’;i+=2)
s=10*s+ch[i]-‘0’;
printf(“%d\n”,s);
}
A)1B)1256C)12ab56D)ab
程序填空题
1)下面程序可求出矩阵a的主对角线上的元素之和,请填空使程序完整。
main()
{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(【1】)
sum=sum+【2】;
printf(“sum=%d”,sum);
}
答案:
1)B2)D3)A
程序填空题1)i==ja[i][j]
第八章:
1:
函数定义
2:
形式参数,实际参数
3:
函数声明,函数调用(函数的嵌套调用和递归调用不要求);注意:
C语言不能嵌套定义函数,但可以嵌套调用函数
4:
全局变量和局部变量的区别
5:
动态变量/静态变量的概念(static)
题型举例:
1)程序阅读题
写出下面程序的运行结果。
func(inta,intb)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=4,m=1,p1,p2;
p1=func(k,m);p2=func(k,m);
printf(“%d,%d\n”,p1,p2);
}
答案:
1)8,17
第十章:
1:
地址和指针的概念
2:
变量、数组、字符串的指针和指向它们的指针变量
题型举例:
1)若有说明:
int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是。
A)p1=&m;p2=&p1;B)p1=&m;p2=&n;*p1=*p2;
C)p1=&m;p2=p1;D)p1=&m;*p1=*p2;
2)写出下面程序的运行结果。
fun(char*s)
{char*p=s;
while(*p!
=’\0’)p++;
return(p-s);
}
main()
{char*a=”abcdef”;
printf(“%d\n”,fun(a));
}
答案:
1)C2)6
第十一章:
1:
结构体定义,引用和初始化
2:
结构体成员在内存的存储方式;
题型举例:
1)在16位PC机中,若有定义:
structdata{inti;charch;floatf;}b;
则结构变量b占用内存的字节数是。
A)1B)2C)7D)11
答案:
1)C