1、5. 已知 int i;float f;下列语句正确的是_。A)(int f)%i B) int(f)%i C) int(f%i) D) (int)f%i6若int a10=1,2,3,4,5,6,7,8,9,10,*p=a;,则数值为6的表达式为_ 。A) *(p+6) B)*p+6 C)*p+=5 D)p+67.以下为一维整型数组a的正确说明是_. A)int a(10); B)int n=10,an; C)int n; D)#define SIZE 10 scanf(%d,&n);int aSIZE; int an;8.温度华氏和摄氏的关系是: C=5/9(F-32)。已知:float
2、C,F;由华氏求摄氏的正确的赋值表达式是_。A)C=5/9(F-32) B)C=5*(F-32)/9 C)C=5/9*(F-32) D)三个表达式都正确9若有以下说明和语句:struct worker int no;char *name;work, *p=&work;则以下引用方法不正确的是_。A) work.no B)(*p).no C)p-no D)work-no10为了判断两个字符串s1和s2是否相等,应当使用_。A)if(s1=s2)B)if(s1=s2) C)if(strcpy(s1,s2) D)if (strcmp(s1,s2)11下述程序的输出是_。main( ) char c=
3、A; if(0= c =9) printf(YES); else printf(NOA) YES B) NO C) YESNO D) 语句错误二、读程序写结果(共18分)1下面程序段的运行结果是_. int n=0; while(n+=2);printf(,n);2下面程序的运行结果是_.#includevoid main() int a=15,b=21,m=0;switch(a%3) case 0:m+;break;case 1:switch(b%2) default:case 0:%dn,m);3下面程序的运行结果是_。#include int x=10,y=20,t=0;if(x=y)t
4、=x;x=y;y=t;printf(“%d,%d n”,x,y);4下面程序的运行结果是_。void main() int i,j,p,s;s=0;for(i=1;i=4;i+) p=1;for(j=1;j char *p=“abcdefg0hjik0”;printf(“%dn”,strlen(p);6下面程序的运行结果是_。int Fun(int x) static int y = 0;y += x;return y; int x = 10, y = 0, k;for(k=0; kvoid main( ) float y50,min; int j,num=0; void fun(float
5、y50,float *min,int *num);for(j=0;50; yj=600*sin(j*0.16);A printf(“min=%f, The number of negative is=%d”,min,num);void fun(float y50,float *min,int *num) int j;*min=y0;j+) if(*minyj)B; if(yj0)C3. 下面的程序对用户输入的一串字符进行处理,统计出其中小写字母字符的个数。void main() char s100; int letter=0,i=0;please input some charactersn)
6、; while( B) if() letter+; i+; ;letter num=%d”,letter);四、改写程序(3分) 1该程序的功能是根据键盘输入的学生考试分数,判断学生是否通过考试。(60分以上为通过) #include=60)通过考试 else没有通过考试) ;请用条件运算符 ? :判断结构改写程序中的if 判断结构。答案:一、选择题:CBABD CDBDD A1.C只能有字母、数字、下划线,但是第一个字符不可是数字2.B3.A中只能是一个字符,a+b不可以0是转义字符,可以数字是可以的(实际上就是输入了对应字符的ASCII码,char和int是近亲)4.B(D中是位运算符号,
7、40学时中没讲到)5.D%两侧必须是整数,注意强制转换符,括号的位置6.C数组下标从0开始7.D数组在定义的时候,中括号里必须是常量,不能是变量,否则系统不知道在定义的时候应该给这个数组多少存储空间;但是#define是符号常量,也是常量,可以。8.B乘号不可以省略,主页君编程的时候经常忘记乘号;5/9在C语言中得0;5.0/9就不是0了。9.D结构体引用的三种方式:(假设有一个结构体work 有一个指针p指向work)work.no(*p).nop-第三种,左边必须是一个指针项,不可以是常项,所以错;10.D字符串不可以直接比大小 要使用strcmp函数11.A0=c=9:先计算0=c,得1
8、;再计算1=9,得1;所以输出YES如果要实现数学上的“区间”概念,应该改写成0=c&c=9注意,一旦出现|和&运算符,要考虑这两个符号的“短路问题”即:如果|的左边非零,|一定成立,右边的就不做了,即使右边有赋值,+符号等也不做了。如果&左边为零,%一定不成立,右边也就不做了,同上。二、读程序写结果1.答案:4注意:(1)while后面执行的是空语句;(2)n+的意义是:先把n拿出来用,参与运算,运算完了之后n再+最后一次循环,也就是n等于3的时候,n+=2是先判断n=2,为假,准备退出循环,这个时候n再+,所以n=42.答案:1switch(b%2)嵌套在switch (a%3)之内的, 所以case 0后面执行了break,跳出大的switch,所以第二个switch就不执行了。3.答案:20,0(1)有个逗号;(2)if后面执行的语句理论上只有一句,如果想要在if后面执行好多句,需要加此处没有加,所以t=x不执行,但x=y和y=t执行,所以答案是那样子。4.答案:s=33(1)相当于求1的阶乘,2的阶乘,3的阶乘,4的阶乘,再把这四个加起来(2)注意s= 不能丢掉5.答案:7strlen 字符串长度统计函数,统计到第一个0之前有多少个字符,0不算在内注意sizeof与之不同char str10
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1