高手进..c语言问题

2024-12-27 22:33:25
推荐回答(5个)
回答1:

《计算机程序设计C语言》(B卷)

选择题(每小题1.5分,共24分)
1、以下不C语言关键字的是( )。

A、是student B、break C、select D、int

AC都不是
2、已知a,b是整形变量,则以下合法的表达式为( A )。

A、a+=a+1 B、a=b=b+a C、a=5++ D、a+b=2.5

3、C语言规定,在一个源程序中,main函数的位置( C )。

A、必须在最开始 B、必须在最后

C、可以任意 D、必须在系统调用的库函数的后面

4、有定义int a=10;则表达式a%3/3的值为(A )。

A、0 B、1 C、2 D、10

5、定义a,b为整形变量,且均初始化为的正确语句是(B )。

A、int a,b=0; B、int a=0,b=0; C、int a=b=0; D、int a=0;b=0;

6、已定义c为字符型变量,则下列语句中正确的是( C )。

A、c=’97’; B、c=”97”; C、c=97 ; D、c=”a”;

7、通过scanf(“%d,%d”,&a,&b);要使a值为3,b值为4,则正确的数据输入形式为( D)。

A、3,4(回车) B、a=3,b=4(回车) C、a=3(回车)b=4(回车) D、3 4(回车)

8、命题x是小写字母,用C语言可描述为(A )。

A、x>=’a’&&x<=’z’ B、x>=’a’||x<=’z’

C、’a’<=x<=’z’ D、x>=’a’,x<=’z’

9、设有定义int a[4]=,*p=&a[2];则执行printf(“%d\n”,8p--);的结果为( )。
应该是printf(“%d\n”,*p--);答案就是C
A、0 B、2 C、4 D、6

10、有定义:float x=10.5;则下面表达式错误的是( A )

A、x%2 B、(int)x%2 C、x/2 D、(int)x/2

11、以下程序段中循环执行的次数是( D )

int i,k=0; for(i=0;i!=k;i--)k++

A、无限次 B、有语法错,不能执行 C、1次 D、0次

12、有以下函数定义:

void fun(int x,int*y)

若以下选项中的变量都已正确定义,则对函数fun的正确调用语句是( C )

A、fun(10,int *n) B、k=fun(10,12); C、fun(10,&n0; D、void fun(&10,n);

13、有定义;char c;若要人键盘输入一个字符给c变量,正确的语句是( D )。

A、scanf(“%s”,&c); B、scanf(“%c”,c); C、getchar(c); D、c=getchar();

14、以下定义语句,错误的是( D )B也有点问题可能多了个{

A、char a[10],*p=a; B、char a[]={“abcdefg”,*p=&a[3];

C、int a[]=,*p=a+1 D、int n,a[n=5];

15、有定义:int a[2][2]=,};则元素a[0][2]的值是( D )

A、0 B、1 C、2 D、不定值

16、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。

main()

/*Beiginning*/

{int r;float s;

scanf(“%d”,&r);

s=pi*r*r;printf(“s=%f\n’,s);

}

出错的原因是(D )printf()里面可能又是打错有个单引号

A、注释语句书写位置错误 B、存放圆半径的变量r不应该定义为整型

C、输出语句中格式描述符非法 D、计算圆面积的赋值语句中使用了非法变量

阅读程序,给出运行结果。(每小题4分,共16分)
main()
{int I,s=0;

for(i=15;i>0;i--)

{if(i%6==0)break;

s=s+I;}

printf(“%d\n”,s0;

}

test(int x)
{static int j=2;

x++;j--;

printf(“x=%d,j=%d\t”,x,j);

}

main()

fun(int a,int b)
{if(a>b)return(a);

else return(b);

}

main()

{int x=3,y=8,z=6,r;

r=fun(x+y,2*z);

printf(“%d\n”,r);

}

main()
{int i=10,m=0,n=0;

switch(i/10)

{case 0:m++;n++;

case 1:n++;

default:n++;

}

printf(“%d%d\n”,m,m);

}

程序填空(每空格3分,共30分)
程序的功能是统计整型数组中不能被5整除的数的个数。
main()

{int a[10],I,count=0;

for(i=0;i<10;i+=)

scanf(“____(1)_____”,&a[i]);

for(i=0;i<10;i++)

if(____(2)_____)_____(3)_____;

printf(“count=%d”,count);

}

以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。
#include____(1)_____

main()

{char s[80],d[80];int i,j;

gets(s);

for(i=j=0;s[i]!=’\0’;i++)

if(s[j]>=’0’&&s[j]<=’9’)

d[j]=’\0’;

___(3)____;

}

程序的功能为用冒泡法对含有n个元素的整型数组a,从小到大进行排序。
void sort(______(1)_____)

{int i,j,temp;

for(i=0;i
for(j=1;j
if(a[j-1]>a[j])

}

main()

{int a[10],i;

for(i=0;i<10;i++)

scanf(“%d”,&a[i]);

sort(a,10);

for(i=0;i<10;i++)

printf(“%d”,a[i]);

}

编写程序(共30分)
编一个程序,计算:s=1+1/2+1/3+……+1/100

编一个函数,判断M是否为质数。再谝一主函数来调用该函数,输出3~100之间的质数。

回答2:

c4是大写的A,c5是大写的N
printf ("a%cb%c\tc%c\tabc\n",c1,c2,c3)
意思是输出a再输出c1即a再输出b再输出c2即b
\t是换列符,是8个二进制位为一列,即换到当前列的下一列的开始位置
所以跳过4位再输出c再输出c3即c再跳过6位再输出abc换行
printf ("t\b%c%c\n",c4,c5)
如果没有\b,就输出tAN换行
\b的意思应该是跳过前一个,即不输出t就直接输出AN
所以最终结果为
aabb 四个空格 cc 六个空格 abc
AN

回答3:

‘\101’就是‘A’,\116是N,数字就是两个字母的ASC码,转义字符\b的作用是退格,如果没有\b的话会输出tAN,有了\b后光标会退一个,t就会被后面的字母盖住,所以输出结果为AN。不过总感觉你这题目怪怪的,既然是考转义字符,那么是 \t\b 好像还靠谱一点,会不会是你打错了?如果是那样的话,结果应该是_______AN(AN前有七个空格,先进八个再退一个)。也可能是我多心了吧,就这样了。

回答4:

printf ("t\b%c%c\n",c4,c5);
"t"先输出字母t,
"t\b"\b是转义字符,是删除前一个字符,这样屏幕没有任何东西了
"t\b%c",c4 c4='\101',这是八进制表示的,转换为十进制是65,而65对应的字符为A
所以屏幕为A
"t\b%c%c\n",c4,c5与输出c4相当

回答5:

printf ("t\b%c%c\n",c4,c5); \b 是退后一格的意思,在这里没啥用,放在后面的话,在屏幕上输的时候前面一个就会被后面的那个字符给覆盖。
希望对你有帮助