2000-2023学 年 《程序设计基础一C》试卷_第1页
2000-2023学 年 《程序设计基础一C》试卷_第2页
2000-2023学 年 《程序设计基础一C》试卷_第3页
2000-2023学 年 《程序设计基础一C》试卷_第4页
2000-2023学 年 《程序设计基础一C》试卷_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2000-2023学年《程序设计基础一C》试卷

一、单项选择题(每小题2分,共30分)

1.C语言程序中可以对程序进行注释,注释部分必需用符号括起来。

A、Y'和'}‘B、'['和C、"/*“和D、"*/''和

2.下列运算符中,优先级最低的是.

A、*B、!=C、+D^=

3.若变量己正确定义,表达式(j=3,j++)的值是o

A、3B、4C、5D、0

4.已知字符3的ASCII码为97,执行下列语句的输出是0

printf("%d,%c-b\b+l);

A、98,bB、语句不合法C、98,99D、98,c

5.表达式strcmp(“box”,“boss")的值是一个。

A、正数B、负数C、0D、不确定的数

6.数组定义为ima[3][2]={l,2,3,4,5,6},数组元素的值为6。

A、a[3][2]B、a[2][l]C、a[l][2]D、a[2][3]

7.要调用数学函数时,在#冶4遍6叮嘱行中应包含o

A、"stdio.h"B、“string.h"C、"math.h"D、^,ctype.h^^

8.推断i和j至少有一个值为非0的表达式是。

A、i!=0&&j!=0B、i*j!=0C、!(i==0||j==0)D、i&&j

9,若a是基本整型变量,c是单精度实型变量,输入语句是错误的。

A、scanf("%d,%f&a,&c);B、scanf(,,d=%d,c=%f\&a,&c);

C、scanf(,,%d%f;&a,&c);D、scanf(,,%d%f\a,c);

10.若变量已正确定义并且指针p已经指向某个变量x,则(*①++相当于o

A^p++B、x++C^*(p++)D、&x++

11.若pl、p2都是整型指针,pl己经指向变量x,要使p2也指向x,是正确的。

A、p2=pl;p2=**pl;C、p2=&pl;D、p2=*pl;

12.下列程序段的输出是。

intc[]={1,3,5);

int*k=c+l;

printf(”%d”,*++k);

A、3B、5C、4D、6

13.不正确的赋值或赋初值的方式是o

A^charstr[]="stringn;

B、charstr[7]={'s',t,T,T,'n','g'};

C、charstr[l0];str=Mstring";

D、charstr[7]={桃t,T,TJn丁gL\0'};

14.对于以下结构定义,++p->str中的++力口在___o

struct{

intlen;

char*str;

}*p;

A、指针str上B、指针p上C、str指的内容上D、以上均不是

15.对于如下说明,语法和语义都正确的赋值是»

intc,*s,a[]={l,3,5};

A、c=*s;B、s[0]=a[01;C、s=&a[l];D、c=a;

二、填空题(每小题2分,共20分)

1.写出下列程序段的输出结果。

floatxl,x2;

x1=3/2;

x2=xl⑵

printf("%d,%.If,(int)xl,x2);

2.表达式(7«1»2A2)的值是0

3.写出下列程序段的输出结果。

#defineA10

#defineB(A<A+2)-2

printf(n%dH,B*2);

4.写出推断字符变量c是英文字母的表达式o

5.写出下列程序段的输出结果。

intk,x;

for(k=0,x=0;k<=9&&x!=10;k++)

x+=2;

printf("%d,%d",k,x);

6.写出下列程序段的输出结果。

printed,%d”,NULL,EOF);

7.对于以下递归函数f,调用f(3)的返回值是。

f(intn)

{return((n>0)?2*f(n-l)+f(n-2):-1);}

8.写出下列程序段的输出结果。

charstr[]=nhello\tworld\nn;

printf(H%d,%c\n",sizeof(str),*(str+10));

9.输入12345#后,写出下列程序的输出结果。

voidmain()

{charc;

fbr(c=getchar();getchar()!=^#^;c=getchar())

putchar(c);

)

10.执行程序find-nxouldtext.txt时,*++argv[l]的值是。

三、程序阅读题(每题5分,共20分)

1.若输入3123〈回车〉,则以下程序的输出结果是。

#include"stdio.h"

voidmain()

{inti,j,n,a[10];

scanf(u%dn,&n);

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

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

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

for(j=0;j<n;j++)

printf('*%d,a[(i+j)%n]);

)

2.若输入89762425981116354〈回车,,则以下程序的输出结果是

#include"stdio.h"

#defineN10

main()

(

intx[N],yl[N],y2[N];

inti,j,nl,n2,t,p;

nl=n2=0;

for(i=0;i<N;i++){

scanf("%d”,&x[i]);

if(x[i]%2==0)yl[nl++]=x[i];

elsey2[n2++]=x[i];

)

for(i=l;i<nl;i++)

for(j=0;j<nl-l;j++)

if(yi|j]>yiU+i]){

t=yi[jl;yi[j]=yiU+i];yi[j+i]=t;

)

for(i=0;i<n2-l;i++){

P二i;

for(j=i+l;j<n2;j++)

if(y2[p]<y2[j])p=j;

if(p!=i){

t=y2[i];y2[i]=y2[p];y2[p]=t;

)

}

for(i=0;i<nl;i++)printf(M%d,n,yl[i]);

for(i=0;i<n2;i++)printf("%d,n,y2[i]);

)

3.以下程序的输出结果是o

#include<stdio.h>

intz;

voidp(int*x,inty)

{++*x;

y-;

z=*x+y+z;

printf("%d,%d,%d#M,*x,y,z);

voidmain()

{intx=l,y=5,z=9;

p(&x,y);

printf("%d,%d,%d#",x,y,z);

)

4.若输入・6+15*3/5=<回车,,则以下程序的输出结果是

#include<stdio.h>

voidmain()

{

intm=0,sum=0;

charc,oldc='+';

do{

c=getchar();

if(c<=,9,&&c>='0,)m=10*m+c-'O';

else{

if(oldc==,+')sum+=m;

elsesum-=m;

m=0;

oldc=c;

printf(u%d,0,sum);

}

}while(c!=-');

)

四、程序填空题(每空2分,共20分)

1.下列程序的功能是创建单向链表。

#include<stdio.h>

#include<alloc.h>

structlink{

charname[10];

intmark;

structlink*next;

);

voidinsert(char*,int);

structlink*head=NULL;

main()

(

charname[10];

intmark;

structlink*t;

while(1){

scanf(',%s%d",name,&mark);

if(strcmp(name,"#")==0)break;

⑴;

for(t=head;(2))

printf(<'<%s>:%d\nu,t->name,t->mark);

)

voidinsert(char*name,intmark)

(

structlink*p;

P=(3);

strcpy(p->name,name);

p->mark=mark;

(4);

if(head!=NULL)(5);

head=p;

1

2.prog.c是带叮嘱行参数的程序。运行progfilename时,将文本文件filename中的内容原

样输出;运行prog-ufilename时,将文本文件filename中的全部字母以大写方式输出

(其余字符原样输出);运行prog-dfilename时,只将文本文件filename中的数字输出。

#include<stdio.h>

#include<ctype.h>

voidmain(intargc,char*argv[])

(

FILE*fp;

char*filename,ch;

inttag=0;

if(argc<2||argc>3){printR“Argumenterror\n^^);return;}

if(argc==3){

if(strcmp(argv[l],"-u")==0)tag=l;

elseif(strcmp(argv[1],"・d")==0)tag=2;

else{printfiC'Optionerror\n^^);return;}

(6);

)

elsefilename=argv[l];

if((7)){

printf^^Cannotopenfile\n,^);return;

)

while((8)){

ch=fgetc(fp);

if(tag==0)putchar(ch);

elseif(tag==1)(9);

elseif((10))putchar(ch);

}

fclose(fp);

五、编程题(共10分,混合班学生做第2题,其他学生做第1题)

1.[程序说明](10分)

输入m和n(m2n20)后,计算下列表达式的值并输出。

m!

n!*(m-n)!

要求将计算阶乘的运算写成函数fact(n),函数返回值的类型为float«

2.[程序说明](10分)

编写函数strcmp(char*sl,char*s2)。若si和s2均是数字串(包括+/-号),则依据十

进制整数大小进行比较;否则依据Ascii序进行比较。si大于/等于/小于s2时,分别输出

1/0/-U可以干脆调用atoi函数。

2000-2023学年《程序设计基础C》参考答案

一、单项选择题(每小题2分,共30分)

题号123456789101112131415

选择CDADABCBDBABCAC

二'填空题(每小题2分,共20分)

11,0.521

3-34c>='a'&&c<='z'||c>='A'&&c<='Z'

55,1060,-1

7-17813,d

913510'n'

三'程序阅读题(每题5分,共20分)

11,2,3,2,3,1,3,1,2,24,8,16,24,76,89,35,25,11,9,

32,4,6#2,5,9#40,-6,9,6,1,

四、程序填空题(每空2分,共20分)

⑴insert(name,mark)

⑵t!=NULL;t=t->next

⑶(structlink*)malloc(sizeof(structlink))_______________

p->next=NULL

(5>p・>next=head__________________________________

⑹filename=argv[2]_______________________________

⑺(fjp=fbpen(filename,"r"))==NULL

⑻!feof(fip)_______________________________________

<9>putchar(toupper(ch))

,,o)tag==2&&isdigit(ch)

五、编程题(共10分,混合班学生做第2题,其他学生做第[题)

1、

#include<stdio.h>

floatfact(int);

main()

intm,n;

floatval;

scanf("%d%d”,&m,&n);

val=fact(m)/(fact(n)*fact(m-n));

printfCValue:%f\n,\val);

floatfact(intn)floatfact(intn)

{inti;floatf=l;

if(n<=0)return1;for(i=l;i<=n;i++)

return(fact(n-l)*n);f=f*i;

returnf;

#include<stdio.h>

#include<ctype.h>

#include<stdlib.h>

intstrcmp(char*si,char*s2)

(

inttoken=0,vail,val2,n,i;

fbr(i=0;sl[i]!='\0';i++)

if(si[i]!='+'&&s1[i]&&!isdigit(sl[i])){token=1;break;}

for(i=0;!token&&s2[i]!=,\0,;i++)

if(s2[i]!=,+,&&s2[i]!=',&&!isdigit(s2[i])){token=1;break;}

if(token==0)

(

vail=atoi(sl);

val2=atoi(s2);

if(vail>val2)n=1;

elseif(vail<val2)n=-1;

elsen=0;

returnn;

else

for(i=0;sl[i]!=,\0,&&s2[i]!=,\0,;i++)

if(sl[i]>s2[i])return1;

elseif(sl[i]<s2[i])return-1;

if(strlen(s1)==strlen(s2))return0;

if(s[i]==6\09)return-1;

elsereturn1;

2000~2023学年“程序设计基础--C”试卷

一、单项选择题(每题2分,共30分)

1.是合法的用户自定义标识符。

A、b-bB,floatC、<fr>D、_isw

2.若变量已正确定义并赋值,表达式____不符合C语言语法。

A、a*b/c;B、3.14%2C、2,bD、a/b/c

3._____是不正确的字符常量。

A、'\n'B、TC、匕”D>MOV

4.在C程序中,用______表示逻辑值“真二

A、1B、非0的数C、非1的数D、大于0的数

5.把x、y定义成float类型变量,并赋同一初值3.14。

A、floatx,y=3.14;B、floatx,y=2*3.14;

C>floatx=3.14,y=x=3.14;D,floatx=y=3.14;

6.若变量已正确定义,表达式的值不是2。

A、2&3B、1«1C、a==2D、1A3

7.若变量已正确定义,语句"if(a>b)k=0;elsek=1和等价。

A、k=(a>b)?1:0;B、k=a>b;

C、k=a<=b;D、a<=b?0:1;

8.设变量定义为“inta,b;",执行下列语句时,输入,则a和b的值都是10。

scanf("a=%d,b=%d",&a,&b);

A、1010B、10,10C、a=10b=10D、a=10,b=10

9.下列程序的输出结果是。

fun(inta,intb,intc)

{c=a*b;}

main()

{intc;

fun(2,3,c);

printf(,'%d\n',,c);

)

A、0B,1C、6D、无法确定

10.在C程序中,若对函数类型未加说明,则函数的隐含类型为。

A、intB,doubleC^voidD、char

11.表达式strlenC'hello")的值是.

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

12.设变量定义为“inta[4];”,则表达式不符合C语言语法。

A、*aB、a[0]C、aD、a++

13.设变量定义为“intx,*p=&x;",则&*p相当于。

A,pB、*pC,xD、*&x

14.若变量已正确定义,不能使指针p成为空指针。

A、p=EOFB、p=0C、p='\0'D、p=NULL

I5,对于以下的变量定义,表达式不符合C语言语法。

structnode{

intlen;

char*pk;

}x={2,"right"},*p=&x;

A、p->pkB、*p.pkC、*p->pkD、*x.pk

二、填空题(每题2分,共20分)

11.表示“xey》z”的C表达式是o

12.下列程序段的输出是。

printf("%o\n",010«lAl);

13.下列程序段的输出是。

intk;

floats;

for(k=0,s=0;k<7;k++)

s+=k/2;

printf("%d,%f\n",k,s);

14.下列程序段的输出是。

#definef(a,b,x)a*x+b

printf("%d,%d\n",f(3,2,1),f(6,5,f(3,2,1)));

15.下列程序段的输出是。

main()

{intk;

for(k=1;k<5;k++){

if(k%2)printf("*");

elsecontinue;

printf("#");

)

)

16.下列程序段的输出是-

#include<stdio.h>

intf(intx)

{staticy=1;

y++;

x+=y;

returnx;

)

voidmain()

{intk;

k=f(3);

printf("%d%d\n",k,f(k));

)

17,下列程序段的输出是。

int*p,*q,k=5,j=6;

q=&k;p=q;q=&j;

printf("%d",*p);

18.函数

voidf(chars[],chart[])

{intk=0;

while(s[k]=t[k])k++;

)

等价于

voidf(char*s,char*t)

{while();

)

19.下列程序段的输出是。

char*a[2]={"one","two"},**p=a;

printf("%s,",*(p++)+1);

printf("%c\n",**p-1);

20.用typedef定义一个文件指针FP«

三、程序阅读题(每题4分,共16分)

1.输入elephant后,下列程序的输出结果是

#include<stdio.h>

voidmain()

{int』0,k,ch;

staticintnum[5];

charalpha[Ka,,'e;T,V,'u'},in[80];

gets(in);

while(in[i]){

for(k=0;k<5;k++)

if(in[i]==alpha[k]){

num[k]++;

break;

)

i++;

)

for(k=0;k<5;k++)

if(num[k])printf(,'%c%d,',alpha[k],num[k]);

printf(',\nn);

2.下列程序的输出结果是

#include<stdio.h>

voidf(intn)

{if(nvO){

putchar('-');

n=-n;

if(n/10)f(n/10);

putchar(n%10+,0');

main()

f(-610);

)

3.输入01027后,下列程序的输出结果是o

#include<stdio.h>

voidp(intv[])

{inti,k,temp;

for(i=1;i<4;i++)

for(k=i-1;k>=0&&v[k]<v[k+1];k-){

temp=v[k];

v[k]=v[k+1];

v[k+1]=temp;

)

)

main()

{intk,a[4];

for(k=0;k<4;k++)

scanf(n%d",&a[k]);

P(a);

for(k=0;k<4;k++)

printf(H%d",a[k]);

)

4.下列程序编译后生成t.exe,运行tinputoutputzoooil的输出结果是。

voidmain(intargc,char*argv[])

(

intk;

char*p=argv[1];

for(k=2;k<argc;k++)

if(strcmp(argv[k],p)>0)p=argv[k];

printf("%s\n",p);

)

四、程序填空题(每空2分,共20分)

1.验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。要求将6-100

之间的偶数都表示成两个素数之和。素数指只能被1和自身整除的正整数,1不是素数,

2是素数。

#include<stdio.h>

intprime(intn)/*推断n是否为素数7

{intk;

for(k=2;kv=rV2;k++)

if(n%k==0)return0;

return⑴:

)

main()

{inti,k;

for(i=6;i<=100;i+=2)

for(k=2;k<=i/2;k++)

if(_0____){

printf("%d=%d+%d\n”,i,k,i-k);

break;

)

)

2.下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结

果是:Afterswap5,3»

voidmain()

(

inta,b;

a=3,b=5;

swap((3));

printf("Afterswap%d,%d",a,b);

)

swao((4))

{intt;

_15)-;

(6);

_;

)

3.函数del将头指针为head的链表中全部的节点全部删除,并释放相应的内存空间。

structnode{

intk;

structnode*next;

);

structnode*del(structnode*head)

{structnode*p,*q;

p=head;

while((8)){

⑼;

free(p);

(10);

)

returnNULL;

)

五、编程题(第1题4分,第2题10分,共14分)

1.对随意输入的x,用下式计算并打印出y的值。

,exx>10

y=y0x=10

I3x+5x<10

2.输出文本文件input.txt中的非空格字符。

2000-2023学年下《程序设计基础C》答案

单项选择题(每题2分,共30分)

1D2B3C4BA5C

6c7c8D9D10A

11B12D13A14A15B

二、填空题(每题2分,共20分)

1x>=y&&v>=z(错1项2

21

扣1分)

37,9(错1个数字45,25(错1个数字

扣1分)扣1分)

5*#*#(错2个字符65,8(错1个数字

扣1分)扣1分)

758*s++=*t++

9Ne,s(ne给1分,s10typedefFILE*FP(错1项

给1分)扣1分)

三、程序阅读题(每题4分,共16分)

1A1e2(错1个扣2-610(错1个扣1

1分)分)

310,7,2,0(错1个扣4ZOO

1分)

四、程序填空题(每空2分,共20分)

prime(k)&&prime(i-k)(错[项扣]

(1)1或k>n/2或k>=n/2+1(2)

分)

⑶&a,&b或&b,&a(错1项扣(4)int*x,int*y或其它变量名(错1

1分)项扣1分)

⑸T=*x(6)*x=*y

⑺*y=t(8)p!=NULL或p!=0或p

(9)q=p->next(10)p=q

注:(4)-(7)作为一个整体评分,实现*x和*y交换

五、编程题(第1题4分,第2题10分,共14分)

1、

#include"math.h"头文件1分

main()

{floatx,y;变量说明、输入、输出1分

scanf("%f",&x);

if(x>10)y=exp(x);2分

elseif(x==10)y=0;

elsey=3*x+5;

printf("%f\n",y);

)

2、

#include<stdio.h>头文件、变量说明1分

main()

(

FILE*fpin;

charch;

if((fpin=fopen("input.txt","r"))==NULL){2分

printf("Can'topenfileinput.txt\n");

exit(0);

)

while(!feof(fpin)){2分

ch=fgetc(fpin);2分

if(ch!='')putchar(ch);2分

)

fclose(fpin);关闭文件1分

或while((ch=fgetc(fpin))!=EOF)4分(读2分,推断2分)

if(ch!='')putchar(ch);2分

“程序设计基础-C”试题卷A

一.单项选择题(每题2分,共20分)

1.C语言程序的三种基本结构是依次结构、选择结构和______结构。

A.递归B.转移C.循环D.嵌套

2.下列运算符中,优先级最高的是_____O

A.->B.++0.&&D.=

3.表达式!(x>0&&y>0)等价于_____o

A.!(x>0)||!(y>0)B.!x>0||!y>0C.!x>0&&!y>0D.!(x>0)&&!(y>0)

H

4.表达式sizeof("\nsum=%d\n)的值是_O

A.8B.9C.10D.11

5.以下选项中不正确的实型常量是_____o

A.0.23EB.2.3e-1C.1E3.2D.2.3e0

6.表达式_______的值不是10

A.0?0:1B.5%4C.EOFD.!NULL

7.数组定义为inta[11][11],则数组a有—一个数组元素。

A.12B.144C.100D.121

8.对于以下的变量定义,表达式_______是不正确的。

structnode{

intj,k;

}x,*p=&x;

A.p->k=2B.(*p).k=2C.x.k=2D.x->k=2

9.不正确的赋值或赋初值的方式是______O

A.charstr[]=HstringH;B.charstr[10];str=HstringM;

C.char*p=nstringn;D.char*p;p=nstring";

10.设程序中不再定义新的变量,写出在函数main中可以运用的全部变量.

include<stdio.h>

intz;

intp(intx)

{staticinty;

return(x+y);

)

voidmain()

{inta,b;

printf(',%d\n,',p(a));

A.a,bB.a,b,zC.a,b,y,zD.a,b,x,y,z

二、填空题(每题2分,共30分)

21.设字符型变量ch的值是小写英文字母,将它转换为相应大写字母的表达式是

22.表达式1<0<5的值是。

23,表达式~(10»1A~5)的值是。

24.下列程序段的输出结果是。

inta=1;

longb=a*0x12345678;

printf("%x\n",b);

25.设变量已正确定义,在程序段B中填入正确的内容,使程序段A和程序段B等价。

程序段A

for(k=s=0;k<=10;s+=a[k++])

if(a[k]<0)break;

程序段B

for(k=0,s=0;;s+=a[k++])

if()break;

26.下列程序段的输出结果是o

#defineT10

#defineMD3*T

printf("%d",30/MD);

27.下列程序段的输出结果是o

intk,s;

for(k=s=0;k<1O&&s<=1O;s+=k)

k++;

printf(nk=%d,s=%dH,k,s);

28.下列程序的输出结果是o

#include<stdio.h>

intf(intm)

{staticintk=2;

k++;

returnk+m;

)

voidmain()

{ints;

s=f(2);

printf("%d,%d\n",s,f(s));

)

29.对于以下递归函数f,调用f(3)的返回值是

f(intn)

{return((n<=0)?n:f(n-1)+f(n-2));

)

30,下列程序段的输出结果是。

intc[]={10,0,-10};

int*k=c+2;

printf("%d",*k-);

31.下列程序段的输出结果是。

intk=1,j=2,*p=&k,*q=p;

p=&j;

printf("%d,%d",*p,*q);

32.下列程序的输出结果是。

#include<stdio.h>

char*f(char*str)

{returnstr="fun";

)

voidmain()

{char*str="one";

printf("%s,%c\n",f(str)+1,*f(str)+1);

)

33.下列程序的输出结果是。

#include<stdio.h>

voidp(int*x,inty)

{++*x;

y-;

)

voidmain()

{intx=0,y=3;

p(&x,y);

printf("%d,%d",x,y);

)

34.下列程序的输出结果是o

#include"stdio.h"

voidmain()

{intj.k,a[2][2];

for(k=1;k<3;k++)

for(j=1;j<3;j++)

a[k-1][j-1]=(k/j)*(j/k);

for(k=0;k<2;k++)

for(j=0;j<2;j++)

printf("%d,",a[k]0]);

)

35.用typedef定义一个指向函数的指针类型FP,该函数的返回值为整型。

三、程序阅读题(每题5分,共15分)

5.输入c2470f?v回车》后,下列程序的输出结果是,该程序的主要功能是

#include"stdio.h"

intmain()

{charch;

longnumber=0;

while((ch=getchar())<'0'||ch>,6,)

J

while(ch!='?'&&ch>='0'&&ch<='6'){

number=number*7+ch-'O';

printf(H%ld#",number);

ch=getchar();

)

)

2.输入4V回车〉后,下列程序的输出结果是,

#include"stdio.h"

intmain()

{intj,k,n;

floatf,s;

scanf("%d\&n);

s=0;f=1;

for(k=1;k<=n;k++){

for(j=1;j<k;j++)

f=f*k;

s=s+f;

printf(,'%.Of#',,s);

)

)

3.输入55926369回车》后,下列程序的输出结果是

#include<stdio.h>

#include<alloc.h>

structlink{

intmark;

structlink*next;

);

voidf(structlink**);

main()

{structlink*head,*p;

head=(structlink*)malloc(sizeof(structlink));

head->mark=0;

head->next=NULL;

f(&head);

for(p=head;p!=NULL;p=p->next)

printf(,'%dr,p->mark);

)

voidf(structlink**head)

{intmark;

structlink*p;

scanf(M%d",&mark);

if(mark<=0){

(*head)->mark++;

return;

)

else{

p=(structlink*)malloc(sizeof(structlink));

p->mark=mark;

p->next=*head;

*head=p;

f(head);

)

)

四'程序填空题(每空2分,共20分)

1.输入10个浮点数,调用函数f(x)计算并输出相应的函数值。

f(x)的功能是计算分段函数:

rx2+2x+1x<0

y=0x=0

3x>0

#include<stdio.h>

{if(x<0)⑵:

else⑶;

elsereturn3;

)

voidmain()

{intk;

floatx;

for(k=1;k<=10;k++){

scanf(,,%fK,&x);

Hn

printf(y=%f\n5f(x));

)

)

2.函数sort运用冒泡法将一维整型数组中各元素按值从大到小排序。

voidsort(inta[],intn)

{intkJ,t;

for(k=1;k<n;k++)

for((4);j<n-k;j++)

if((5))⑹

}

3.输入1个长整数,求各位数字的平方和。

例如:输入・123,输出14。

#include<stdio.h>

voidmain()

{intdigit;

longin,s;

,,,

scanf('%ldJ&in);

⑺;

⑻;

while(in>0){

⑼;

s=s+digit*digit;

(io);

}

,,,,

printf(sum=%ld\nJs);

)

五、编程题(共15分)

1.函数ff(str,ch)的功能是统计并返回字符ch在字符串str中出现的次数。

例如:调用ff("every丁e')后返回2,因为在字符串"every"中字符©出现了2次。

2.从键盘输入一个字符ch,输出该字符在文本文件input.txt的每一行中出现的次数。(必

需调用第1题定义的函数ff统计ch的出现次数)。

例如:假如文件input.txt中存放了下列数据:

every

121

Iamastudent.

运行程序,并输入©后,输出

2

0

1

“程序设计基础-C”参考答案

单项选择题(每题2分,共20分)

1C2A3A4_B_5AC

6C7D8D9_B_10B

填空题(每题2分,共30分)

ch-'a'+'A'或toupper(ch)1

12

05678或12345678

34

a[k]<0||k>10(错1项扣1

100

56

k=5,s=15(错1项扣1

5,9(错1个数字扣1分)

7分)8

-2-10

910

2,1(错1个数字扣1分)un,g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论