C 自测题参考答案2(2)

2019-09-01 17:11

自测题2

一 、单项选择题(2*20=40分)

1.能正确表示a和b同时为正或同时为负的逻辑表达式是______。D A、(a>=0||b>=0)&&(a<0|| b<0) B、(a>=0&&b>=0)&&(a<0&&b<0) C、(a+b>0)&&(a+b<=0) D、a*b>0 2.下面程序的输出结果是______。B #include int main( ) {

int a,b;

for(a=1,b=1;a<=100;a++)

{

if(b>=20) break; if(b%3==1)

{

b+=3; continue; }

b-=5; }

printf(\ return 0; }

A、7 B、8 C、9 D、10

3.若有说明:int i,j=7,*p=&i;则与i=j;等价的语句是______。B A、i=*p; B、*p=*&j; C、i=&j; D、i=**p; 4.下面程序的输出结果是______。B

#include int main( ) {

int n=9;

while(n>6) { n--;

printf(\}

return 0; }

A、987 B、876 C、8765 D、9876 5.下面程序中的for循环执行的次数是______。B

#include #define N 2 #define M N+1

#define NUM 2*M+1 int main( ) { int i;

for(i=1;i<=NUM;i++) printf(\return 0; }

A、5 B、6 C、7 D、8

6.有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则表达式值为9的是______。B A、*p+9 B、*(p+8) C、*p+=9 D、p+8 7.有如下定义,能输出字母M的语句是______。D

struct person{ char name[9]; int age; }; struct person class[10]={\ A、printf(\ B、printf(\ C、printf(\ D、printf(\

8.已知变量a、b、c为float类型,要通过语句scanf(\%f %f\给 a输入10.0,b输入22.0,c输入33.0,不正确的输入形式是:______。B

A、10 B、10.0,22.0,33.0 22 33

C、10.0 D、10 22 22.0 33.0 33

9.假定已建立以下链表,且指针p和q已指向如图所示的结点:

则以下选项中可将q所指结点从链表中删除,并释放该结点的语句是______。D A、(*p).next=(*q).next; free(p); B、p=q->next; free(q); C、p=q; free(q); D、p->next=q->next; free(q); 10.以下选项中,非法的字符常量是______。C A、'\\t' B、'\\17' C、\ D、'\\xaa'

11.在下划线处中填入______,使findmax函数能返回参数a所表示的数组中的最大值。 #include

int findmax(int *a,int n) {

int *p,*s;

for(p=a,s=a;p-a

int main( ) {

int x[5]={12,21,13,6,18}; printf(\ return 0; }

A、p>s B、*p>*s C、a[p]>a[s] D、p-a>p-s 12.下面程序的输出结果是______。B

#include

void ss(char *s,char t) {

while(*s) {

if(*s==t) *s=t-'a'+'A'; s++;

}

return; }

int main( ) {

char str1[100]=\ ss(str1,c);

printf(\return 0; }

A、ABCDDEFEDBD B、abcDDfefDbD C、AbcAAfefAbA D、Abcddfefdbd 13.下面fun( )函数的功能是______。C

fun(char *sl,char *s2) {

int i=0;

while(sl[i]==s2[i]&&s2[i]!='\\0') i++;

return(sl[i]=='\\0'&&s2[i]=='\\0'); }

A、将s2所指字符串赋给s1

B、比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0 C、比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0 D、比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0 14.以下选项中,全部是合法用户标识符的是______。B ① ② ③ ④ _main If txt int enclude _max REAL k_2 sin turbo 3COM _001 A、1 B、2 C、3 D、4

15.若程序中定义了以下函数: double myadd(double a,double b) {

return(a+b); }

对函数myadd声明时,以下选项中错误的说明是______。A

A、double myadd(double a,b); B、double myadd(double,double); C、double myadd(double b,double a); D、double myadd(double x,double y); 16.下列条件语句中,功能与其它语句不同的是______。D A、if(a) printf(\ B、if(a==0) printf(\ C、if (a!=0) printf(\ D、if(a==0) printf(\

17.设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式值为0的是______。D A、'a'&&'b' B、a<=b C、a||c&&b-c D、!((a

#include int fun (int x,int y) {

static int m=0,i=2; i+=m+1; m=i+x+y; return m; }

int main( ) {

int j=1,m=1,k; k=fun(j,m); printf(\ k=fun(j,m); printf(\ return 0; }

A、5,5 B、5,11 C、11,11 D、11,5

19.下面程序运行后,文件t1.dat中的内容是____________。B

#include

void WriteStr(char *fn,char *str) {

FILE *fp;

fp=fopen(fn,\

fputs(str,fp); fclose(fp); return; }

int main( ) {

WriteStr(\ WriteStr(\ return 0; }

A、start B、end C、startend D、endrt

20.已知整型变量a的值是15,b的值是9,则表达式a&b的值是____________。D

A、1 B、0 C、8 D、9

二 、程序填空题(18分,每空3分)

注意:不得增行或删行,也不得更改程序的结构!

1.下面程序的功能是将十进制正整数m转换成k进制(2≤k≤9)的数字输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。请在程序的下划线处填入正确的内容,使程序得出正确结果。

#include void fun(int m,int k) {

int aa[20],i;

for(i=0; m; i++) {

aa[i]=___1___; // aa[i]=m%k; m/=___2___; // m/=k; }

for(;i;i--)

printf(\ // printf(\}

int main( ) {

int b,n;

printf(\ scanf(\ fun(n,b); return 0; }

2.函数fun( )的功能是:根据整型形参n,计算数列中第n项An的值。 A1?1,A2?1,A3?1,......,An?1?A11?A21 1?An?1请在程序的下划线处填入正确的内容,使程序得出正确结果。 #include float fun ( int n ) {

float A=___1___ ; // float A=1 ; int i;

for (i=1; i<=___2___; i++) // for (i=1; i<=n; i++) A=1.0/(1+A);

___3___ ; // return A ; }

int main( ) {

int n;

printf(\ scanf(\

printf(\ return 0; }

三、程序改错题(共12分 每处3分)

注意:每题有两处错误;改错时,不得增行或删行,也不得更改程序的结构!

1.函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。请改正程序中的错误,使它能得出正确的结果。 #include #define N 20

int fun(float *s,int n,float *aver) {

float ave,t=0.0f;

int count=0,k,i; for (k=0;k

t=s[k]; // t+=s[k]; ave=t/n;

for (i=0;i

if(s[i]

*aver=&ave; //*aver=ave; return count; }

int main( ) {

float s[30],aver; int m,i;

printf(\ scanf(\

printf(\ for(i=0;i

printf(\ printf(\ return 0; } 2.函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:

π/4=1-1/3+1/5-1/7+……

请改正程序中的错误,使它能得出正确结果。

#include #include float fun(float num) { int s;

float n,t,pi;

t=1;pi=0;n=1;s=1;

while(t>=num) //while(fabs(t)>=num) {

pi=pi+t; n=n+2; s=-s;

t=s%n; // t=s/n; }

pi=pi*4; return pi; }

int main( ) {

float n1,n2;

printf(\ scanf(\ n2=fun(n1);

printf(\ return 0; }

三、程序设计题(30分)

1.请编一个函数fun(char *s),函数的功能是把字符串中所有的字符前移一个位置,串中的第一个字符移到

最后。例如:原有的字符串为:Mn.123xyZ,则调用该函数后,字符串中的内容为:n.123xyZM (20分)

#include #define N 81 fun(char *s) {

char b[N];

sprintf(b,\ strcpy(s,b); }

int main( ) {

char a[N];

printf(\

gets(a); fun(a);

printf(\ puts(a); return 0; }

2.编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

111 s?1???......?1?21?2?31?2?3?......?n(10分)

#include float fun(int n) {

int i;

float s=1.0,h=1; for (i=2;i<=n;i++) {

h=h+i; s=s+1.0/h; }

return s; }

int main( ) {

int n; float s;

printf(\ scanf(\ s=fun(n);

printf(\ return 0; }


C 自测题参考答案2(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:公交车调度模型

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: