期末复习资料 第21页-总26页
case 2: s++; default: s++; case 1: s++; }
printf(“s=%d”,s); 循环结构这部分主要考察: (1) 三种循环的互相改写 (2) 循环条件的判定与书写
(3) 循环中执行的跳转(break/continue) (4) 嵌套循环的应用(特别是对一二维数组的访问) (5) While与do-while的区别 例如以下题目:
t-51:将下面的for循环改写成while循环: for(i=0;i<=10;i++) { if(i==6 ) continue; printf(“*”);} t-52: 以下程序段的输出是 int a=1,b=2,c=3,s=1; while(c>b>a)
{ if(s++>3) printf(“%d”,s);} printf(“%d”,s);
t-53:下面的循环条件哪个为真
A)char ch=?0? ; while(ch){…} B)int a=1;while(a=0){..} C) int a=0; while(a++){…}
21
期末复习资料 第22页-总26页
t-54:下面程序段的功能是什么? char a[10],*p1=a,*p2=”hello”; while( *p1++ = *p2++); t-55: 下面程序段的输出是什么?
char a[10]= “abcdef”,*p1=a, b[10]= “ABC”,*p2=b ; while(*p1 && *p2) { *p1=*p2;p1++;p2++} puts(a);puts(b); puts(p1);puts(p2);
t-56:若有定义int a[3][3]={1,2,3,4,5,6,7,8,9},i,j;则下面程序段的输出是什么?
for(i=0;i<3;i++) { for(j=0;j<3;j++)
{printf(\ printf(\}
算法中使用的分支或者循环结构是构建框架的体现,而框架内就需要具体的语句来填充,算法描述中相当一部分语句是各种运算表达式语句,这就需要我们对C中的运算做以全面的了解。应将课本附录C中运算符的优先级和结合性以及图3-10记住,对于计算混合表达式有用。对于字符型数据应牢记在运算时取其ASCII值进行运算,牢记常用的几个字符(?A? ?a? ?0? ?\\0?)的ASCII码值. C中经常使用的运算有:
(1) 算术运算(3.8):掌握/ 与 %运算的特殊规则,掌握++ --在表达式中前置与
后置结果的区别
(2) 关系运算(5.1):掌握关系运算的计算和书写
(3) 逻辑运算(5.2):掌握逻辑表达式的计算和书写及一些特殊的判定规则
22
期末复习资料 第23页-总26页
(4) 赋值运算(3.9):掌握复合赋值运算符的使用,了解赋值运算中的类型转换,
整型与字符型的赋值
(5) 逗号运算(3.10):区分各项的结果值与整个逗号表达式的结果值 (6) 强制类型转换运算:注意括号应用的位置 (7) 长度运算符
(8) 对于各类指针的有限运算:算术运算、关系运算、赋值运算(参见课堂内容) 例如以下题目:
t-57: 计算 8/3 与8/3.0 有何不同? t-58: 6 % 2.0是否合法?
t-59:混合运算表达式8+6%(int)3.4 *2 + 8.0 的结果是什么,结果值是什么类型?
t-60: 若x=4,则y=x++ + 2 与 y=++x +2 有什么不同? t-61:条件“a在10 和20(包括10和20)之内”如何表达?
t-62:若 a=1,b=3,c=?A?,则表达式 !a < b||0 && (c-=32)的值是多少?变量c的值是多少?
t-63: ?a?-32 是多少? ?B?+?0? –?3? 的值是多少? t-64:执行下面程序段后a 和b的值各是多少?
int a=2,b=3; b=a++; a=a+b; b=a-b; a=a+b; t-65: 执行表达式x=1>2? 3: 4<5?6:7 后,x的值是多少?
t-66:若有float a=9.8 ;则表达式(int)a+0.3 执行后表达式的值是多少?变量a的值是多少?
t-67:sizeof(int) 与 int a ;sizeof(a)的结果一样吗?
t-68: 若有int a[5]={…},*p; p=a; 则 a+i 或者 p+i表示什么意思? t-69:若有int a[3][3]={…},(*p)[3]; p=a; 则a+i或者 p+i表示什么意思?
23
期末复习资料 第24页-总26页
*a+i或者*p+i表示什么意思?
t-70: 若有int a[3][3]={…},*p[3];则表达式p[i]=a+i 是否正确? t-71: 程序段int *p[3], *q;q=p;是否正确?
因字符串的存储特点(含有结束标记)决定了对串的处理不同于数值型数组。对于字符串的这部分内容主要考察:
(1) 存储串的字符数组的定义和初始化 (2) 串的输入和输出 (3) 遍历串的循环条件的书写
(4) 理解常见的串处理函数strcmp/strcpy/strcat/strlen的使用特性 (5) 理解串的比较规则
t-72: 以下串的正确的定义和初始化语句是
A)char a[]=”hello”;B) char a[5]=”hello”; C)char a[5]={?h?,?e?,?l?,?l?,?o?};D) char *p=”hello”; E)char
a[10];
a=”hello”;
F)
char
*p;
p=”hello”
G)
char
a[3][10]={“hello”,”tom”,”jack”};
H) char a[3][10]; a[0]=”hello”,a[1]=”tom”,a[2]=”jack”;
t-73:若有串“hello tom”,则输入时用scanf(“%s”,a);和用gets(a);(设a为字符型数组)是否都能正确输入?
t-74:若有char a[3][10]={ “hello”,”tom”,”jack”},(*p)[3]=a; 则下面哪种写法能输出串“tom”:
A)puts(a[1]); B) puts(*(p+1)) C)puts(p[1]) D) puts(*(a+1)) E)puts(a+1) F)puts(p+1) t-75: 若有如下访问结构图:
24
期末复习资料 第25页-总26页
指针数组q 二维字符数组a p Hello\\0 Tom\\0 Jack\\0
(1) 分别写出p 、 q和a的定义
(2) 根据图中的指针指向写出p、q各变量的赋值 (3) 用q的引用形式输出三个串。 (4) 用p的引用形式输出三个串。
(5) 用p的引用形式来输入三个串至二维数组中。 (6) 用q的引用形式来输入三个串至二维数组中。
t-76: 若有char a[80]=”hello”,则遍历整个串时的循环条件是a[i]<80还是 a[i]!=?\\0??
t-77: 若有char a[20]=”tom”, b[10]= “jack”,*p1,*p2 ; p1=a;p2=b;则 (1)strcpy(a,b)执行后a和b中的内容各是什么? (2)strcpy(a+3,b) 执行后a和b中的内容各是什么? (3)strcmp(a,b)的结果是什么?
(4)strlen(strcat(p1,p2+2))的结果是什么?
(5) 如果要描述“a中的串大于b中的串”,则下面哪个写法是正确的? A) a>b B)p1>p2 C) strcmp(a,b)>0 D) strcmp(p1,p2)>0
t-78:若有定义char a[5]={?h?,?e?,?l?,?l?,?o?},b[3]={?t?,?o?,?m?};则表达式strcmp(a,b)的结果是什么? 第五部分:其它
(一)宏的使用(9.1),例如以下题目:
t-79:下面程序的运行结果是什么?若带参宏S的定义为#define S(r) PI*(r)*(r)结果又如何?我们要总结什么?
#define PI 3.14
25
期末复习资料 第26页-总26页
#define S(r) PI*r*r void main()
{ float a=2,b=5, area; area=S(a+b);
printf(\}
若第2行改为#define S(r) PI*(r)*(r) 再运行程序结果如何?什么原因造成的?
希望能给大家提供一个将所学知识系统化的参考资料,更多的复习和总结还需要大家自己来做。预祝各位期末考试能顺利过关!对于本学期付出辛勤劳动的课代表和各位组长表示衷心的感谢! 2010.6
26
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言期末复习资料2011北理工版(5)在线全文阅读。
相关推荐: