题目来源慕课网
记录学习过程中遇到的错题
随时更新
-
字符串"\\’\054"占用的存储空间的长度是____。
答案:4
解释:
首先\\
,是转义字符,表示反斜线字符,占一个字节
然后\’
,是转义字符,表示单引号字符,占一个字节
其次\054
,是转义字符,表示用反斜杠后的三位八进制数字对应的ASCII码的字符,占一个字节
最后字符串还有个结束符\0
,占一个字节 -
下列转义字符中,错误的是( )。
A. ’ \031’ B. ’ \b’ C. ’ \0xa5’ D. ’ \"’
答案:C
解释:A选项是转义字符,用三位八进制表示ASCII码。B选项的反斜杠b表示的是退格。C选项中如果是用三位八进制数表示,则里面不可能出现a和x,而且位数不对。D选项表示的是双引号。 -
字符串 "\\abcd\\\n"在内存中占用的字节数是( )。
A. 11 B. 14 C. 10 D. 9
答案:C
解释:\\
表示反斜杠,有两个,占2个字节;abcd
一个字符占1个字节,共4个字节;又到了\\
,有两个,占2个字节;\n
表示换行转义符,占1个字节;最后还有一个结束符\0
,占一个字节。所以2+4+2+1+1=10。 -
以下哪个数字占据的空间最大( )。
A. 32768.0F B. ‘3’ C. 32768 D. 32768.0
答案:D
解释:A选项指定了为float类型,占4个字节;B选项是一个字符,占1个字节;C选项是个整型,占4个字节;D选项是一个浮点数,C语言中浮点数默认为double类型,占8个字节。 -
printf(“a\rHappi\by”);在屏幕上正确的输出形式是( )。
A. Happy
B. aHappi
C. aHappy
D. Happi
答案:A
解释:首先输出a,然后到\r
的时候,表示光标回到本行的开头,所以后面输出的H就把a覆盖掉了。之后输出Happi。到\b
的时候,表示光标退一格。然后输出的y就把i覆盖了。所以最后是Happy。 -
运行下面的程序,正确的输出结果是( )
#include <stdio.h> int main( ) { double x=68.7563, y= -789.127; printf ("%f, %10.2f\n", x,y); return 0; }
A. 68.756300, □□□-789.13
B. 68.75, □□□-789.13
C. 68.756300, □□□-789.12
D. 68.75, -789.12
答案:A
解释:%f默认保留6位小数。%10.2f表示有10个位置来显示,不满就右对齐,保留两位小数。 -
设int a=3;,则表达式a<1&&–a>1的运算结果和a的值分别是()
A. 0和3
B. 0和2
C. 1和2
D. 1和3
答案:A
解释:从左到右计算判断。首先a<1的结果为0,后面又是&&,所以后面部分不会计算,直接输出结果为0。此时a的值没有发生改变。运算符优先次序由高到低:!,算术运算符,关系运算符,&&,||,条件运算符,赋值运算符,逗号运算 -
求1~100以内 ( 包括100)能被3整除同时被5整除余数为1的所有数之和。要求用for语句完成。
输出格式:“sum=%d\n”
输出样例:sum=357
答案:#include<stdio.h> int main(){ int i,sum=0; for(i=1;i<=100;i++){ if(i%3==0 && i%5==1){ sum = sum + i; } } printf("sum=%d\n",sum); return 0; }
-
用do while 语句实现反复从键盘输入一个整数,如果大于或等于零,累加求和,直到输入负数结束。然后求出平均值并输出。
输入格式:"%d"
输出格式:“AVE=%.2f\n”#include<stdio.h> int main(){ int n,sum=0,count=0; do{ scanf("%d",&n); if(n>0){ sum=sum+n; } count++; }while(n>=0); double c = sum/(count-1); printf("AVE=%.2f\n",c); return 0; }
-
求1到10的阶乘的和
#include<stdio.h> int main(){ int n,j,sum=0,tmp; for(n=1;n<=10;n++){ tmp = 1; for(j=1;j<=n;j++){ tmp = tmp*j; } sum = sum + tmp; } printf("%d",sum); return 0; }
-
用10元人民币兑换角币有多少种换法(角币有1角、2角、5角三种)
#include<stdio.h> int main(){ int i,j,k,count=0; for(i=0;i<20;i++){ for(j=0;j<50;j++){ for(k=0;k<100;k++){ if(i*5+j*2+k==100){ count++; printf("%d %d %d\n",i,j,k); } } } } printf("%d",count); return 0; }
-
辗转相除法求两个整数的最大公约数
#include<stdio.h> int main(){ int a,b,max,min,r; scanf("%d%d",&a,&b); if(a>b){max=a;min=b;} else{max=b;min=a;} do{ r = max%min; max = min; min = r; if(r==0){ printf("%d",max); } }while(r!=0); return 0; }
-
找出一个大于给定整数且紧随这个整数的素数,例如 给定整数3,找到的素数是5。
#include<stdio.h> int main(){ }
-
已知梯形的上底为a,下底为b,高为h,用C语言书写的正确的面积公式是( )。
A. 1.0/2*(a+b)*h B. 1.0/2.0(a+b)h C. 1.0/2*a+b*h D. 1/2*(a+b)*h
答案:A
解析:B选项,C语言中乘法运算符不能省略;C选项,缺少了括号;D选项,C语言中用斜杠作除法运算时,如果除数和被除数都是整型,那最后结果也会四舍五入取整。所以