|
为统计字符指针s所指字符串包含的某字符的出现次数,必须用一个循环顺序考察整个字符串。由从指针s所指字符串的首字符开始,每考察一个字符后,指针s后移一个字符位置,考察循环直至字符率结束终止。所以填写在空框中的正确代码可写成* S! =‘\ 0’。由于字符串束符‘\ 0’的代码为 8位全0,其值为 0,正确解答也可写成* S!= 0,或更简洁地写成*s. 「例4」在内存中存储‘A’要占用____字节,存储“A”又要占用____字节。 由于C语言规定字符只占1个字节,一个具体的字符当然也只占1个字节。字符串“A”要有1个字节用于存储字符‘A’,另需要1个字节存储字符串的结束符,所以它要占用连续的2个字节。 「例5」设整型变量a、b的值均为3,执行语句: b= a++, b++, ++a; 后,a的值为____,b的值为____. 该试题的表达式书写形式一般不会直接出现在实际应用程序中,但作为考核考生对有关表达式的计算规则,也不失为是一个很有意义的试题。赋值表达式自右至左计算,而逗号运算符的优先级最低,并且逗号表达式自左至右逐一计算,并以最后子表达式的值为逗号表达式的结果。上述表达式的计算顺序可用以下3个表达式语句等价表示: b=a++;b++;++a; 由以上一系列表达式知,变量b的最终值与其原来值无关,表达式b= a+十是先计算a++。表达式a+十的值是变量a的原先值3,但又让变量a增1后变为4.然后表达式b++又使变量b增1,变成4.而计算++a的值,是让a增1,使a的值变为5.所以上述表达式使变量a的值变为5,b的值变为4. 如上述表达式改写为: b+=(a++,b++,++a); 请读者回答执行该表达式后,变量a和b的值又分别为多少。 3.程序分析题 程序分析题要求考生阅读程序,回答程序的输出结果,或指出程序的功能。回答这类问题,要求考生将自己当作一台假想的计算机,模拟执行序。 「例6」阅读下列程序,写出程序运行后的输出结果。 # include <stdio.h> main() {int a[][3]={1,2,3,4,5,6,7,8,9}; int i,j,s1= 0,s2= 0; for(i= 0;i<3, i++) for(j=0;j<3;j++){ if(i==j)sl+=a[i][j]; if(i+j==2) s2+=a[i][j]; } printf(“sl=%ds2=%d\n”, sl,sZ); } | |
| 没有相关文章 |
| 文章评论 | |||