C语言程序设计作业2答案.docx

上传人:b****3 文档编号:10385578 上传时间:2023-05-25 格式:DOCX 页数:16 大小:24.55KB
下载 相关 举报
C语言程序设计作业2答案.docx_第1页
第1页 / 共16页
C语言程序设计作业2答案.docx_第2页
第2页 / 共16页
C语言程序设计作业2答案.docx_第3页
第3页 / 共16页
C语言程序设计作业2答案.docx_第4页
第4页 / 共16页
C语言程序设计作业2答案.docx_第5页
第5页 / 共16页
C语言程序设计作业2答案.docx_第6页
第6页 / 共16页
C语言程序设计作业2答案.docx_第7页
第7页 / 共16页
C语言程序设计作业2答案.docx_第8页
第8页 / 共16页
C语言程序设计作业2答案.docx_第9页
第9页 / 共16页
C语言程序设计作业2答案.docx_第10页
第10页 / 共16页
C语言程序设计作业2答案.docx_第11页
第11页 / 共16页
C语言程序设计作业2答案.docx_第12页
第12页 / 共16页
C语言程序设计作业2答案.docx_第13页
第13页 / 共16页
C语言程序设计作业2答案.docx_第14页
第14页 / 共16页
C语言程序设计作业2答案.docx_第15页
第15页 / 共16页
C语言程序设计作业2答案.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计作业2答案.docx

《C语言程序设计作业2答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计作业2答案.docx(16页珍藏版)》请在冰点文库上搜索。

C语言程序设计作业2答案.docx

C语言程序设计作业2答案

第2次作业答案     

一、单项选择题答案

1B2B3D4C5B6B7D8D9B10C

11C12B13A14C15B16B17D18A19D20B

一.单项选择题

1.若有以下定义:

inta[]={3,4,5,6,7,8,9,10,11},*p=a;

则值为5的表达式是()。

A)p+=5,*(p+1)B)p+=1,*++pC)p+=4,*p++D)p+=1,++*p

2.下面函数调用语句含有实参的个数为()

fun((a,b,c,d),(m,n),(f,g));

A)1B)3C)4D)2

3.函数形式正确的是()。

A)doublemyfun(intx,inty)B)intmyfun(intx,y)

{m=x+y;returnm;}{intm;}

C)intmyfun(intx,inty)D)intmyfun(intx,inty)

{intx,y;doublem;{intm;m=x+y;returnm;}

m=x+y;returnm;}

4.不正确的字符串赋值或赋初值方式是()。

A)char*str;str=”string”;B)charstr[7]={‘s’,‘t’,‘r’,‘i’,‘n’,‘g’}

C)charstr[10];str=”string”;

D)charstr[]=”string”;str2[]=””;strcpy(str2,str1);

5.以下程序的输出结果是()。

#include

main()

{charstr[]="SSSWLIA",c;

intk;

for(k=2;(c=str[k])!

='\0';k++){

switch(c){

case'I':

++k;break;

case'L':

continue;

default:

putchar(c);continue;

}

}

putchar('*');

}

A)SSW*B)SW*C)SW*AD)SW

6.以下程序的输出结果是()。

#include

intw=3;

fun(intk)

{

if(k==0)returnw;

return(fun(k-1)*k);

}

main()

{intw=10;

printf("%d\n",fun(5)*w);

}

A)360B)3600C)1080D)1200

7.以下程序的输出结果是()。

#include

intw=3;

f(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inta=2,i;

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

printf("%d",f(a));

}

A)777B)71013C)7911D)789

8.以下程序的输出结果是()。

#include

main()

{inta[]={1,2,3,4,5,6},*p;

p=a;*(p+3)+=2;

printf("%d,%d\n",*p,*(p+3));

}

A)0,5B)1,5C)0,6D)1,6

9.以下程序的输出结果是()。

#include

#definePT5.5

#defineS(x)PT*x*x

main()

{inta=1,b=2;

printf("%4.1f\n",S(a+b));

}

A)49.5B)9.5C)12.5D)33.5

10.下面程序段的输出结果是()。

#include

#defineLETTER1

main()

{charstr[20]="Language",c;

inti=0;

while((c=str[i])!

='\0')

{i++;

#if(LETTER)

if(c>='a'&&c<='z')c=c-32;

#else

if(c>='A'&&c<='Z')c=c+32;

#endif

printf("%c",c);

}

}

A)LanguageB)languageC)LANGUAGED)lANGUAGE

11.若有说明:

char*s[]={“FORTRAN”,“BASIC”,”PASCAL”,”JAVA”,”C”};则表达式*s[1]>*s[3]比较的是()。

A)字符F和字符PB)字符串BASIC和字符串JAVA

C)字符B和字符JD)字符串FORTRAN和字符串PASCAL

12.如下程序的输出结果是()。

#include

main()

{chara[20]="chinese";char*p=a;

for(;p

}

A)chineseB)cieeC)chineD)cie

13.若有定义:

inta[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为()。

A)*(*(a+i)+j)B)(a+i)[j]C)*(a+i+j)D)*(a+i)+j

14.若有以下定义和语句,则对a数组元素的正确引用为()。

inta[2][3],(*p)[3];

p=a;

A)(p+1)[0]B)*(*(p+2)+1)C)*(p[1]+1)D)p[1]+2

15.若以下main函数经过编译、连接后得到的可执行文件名为echo.exe,若希望在系统的命令状态下输入某一命令行后得到的输出是chiantianjin,则命令行的内容应是()。

A)chiantianjinB)echochiantianjin

C)echoD)echo

chiantianjinchina

tianjin

16.以下对结构体变量stu中成员age的非法引用是()。

structstudent

{intage;intnum;}stu,*p;

p=&stu;

A)stu.ageB)student.ageC)p->ageD)(*p).age

17.已知学生记录描述为:

structDATE

{intyear;

intmonth;

intday;

};

structstudent

{intno;/*学号*/

charname[10];/*姓名*/

charsex;/*性别*/

structDATEbirth;

};

structstudents;

设变量s中的“生日”应该是“1984年11月11日”,下列对“生日”的正确赋值方式是()。

A)year=1984;B)birth.year=1984;

month=11;birth.month=11;

day=11;birth.day=11;

C)s.year=1984;D)s.birth.year=1984;

s.month=11;s.birth.month=11;

s.day=11;s.birth.day=11;

18.若有以下定义的语句:

uniondata

{inti;

charc;

floatf;

}a;

intn;

则以下语句正确的是()。

A)a.i=5B)a={2,’a’,1.2}C)printf(“%d”,a)D)n=a

19.表达式a

A)~,&,<,||B)~,||,&,

20.若执行fopen函数时发生错误,则函数的返回值为()。

A)地址值B)0C)1D)EOF

二.填空题答案

1.[&arr[i],arr+i]

2.[

(1)a[0]=1a[1]=2

(2)实参和形参是值传递]

3.[

(1)0

(2)6]

4.[*(s+j++)=*(s+i);]

5.[

(1)i<=7

(2)j=i+7]

6.[123]

7.

[EFGH

IJKL]

8.[n1=1,n2=6]

9.[

(1)longnum

(2)num!

=0]

10.[120]

11.[FO]

12.[

(1)FILE*fp

(2)fname(3)fp]

二、填空题(本大题共11小题,每空2分,共30分)

1.intarr[20];则arr[i]的地址可表示为

2.函数swap(intx,inty)可完成对x和y值的交换。

在运行调用函数中的如下语句后,a[0]和a[1]的值分别为和,原因是swap(a[0],a[1])只是将形参的值交换,实参a[0]和a[1]并不交换.。

a[0]=1;a[1]=2;swap(a[0],a[1]);

3.若有定义inta[3][4]={{1,2},{0},{4,6,78,10}};则初始化后a[1][2]得到的初值是0,a[2][1]得到的初值是6。

4.函数delete_string(chars[],charc)将字符串s中所出现的与变量c相同的字符删除,请填空。

delete_string(char*s,charch)/*定义外部函delete_string*/

{inti,j;

for(i=j=0;*(s+i)!

='\0';i++)

if(*(s+i)!

=ch)*(s+(j++))=*(s+i)

_____________;

*(s+j)='\0';

}

5.下面程序段将输出computer,请填空。

inti,j=0;

charc[for(i=0;j=7,i<8;i++)

]=”it’sacomputer”;

for(i=0;j+=i;

;i++)

{printf("%c",c[j]);

;printf(“%c”,c[j];)

6.如下程序段的输出结果是123

#include

main()

{charstr[]="1a2b3c";inti;

for(i=0;str[i]!

='\0';i++)

if(str[i]>='0'&&str[i]<='9')printf("%c",str[i]);

}

7.如下程序段的输出结果是EFGH

IJKL。

#include

main()

{charstr[][10]={"ABCD","EFGH","IJKL","MNOP"},k;

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

printf("%s\n",str[k]);

}

8.如下程序段的输出结果是n1=1,n2=6

#include

main()

{inta[]={1,2,3,4,5,6},*p,i;

p=a;

*(p+3)+=2;

printf("n1=%d,n2=%d\n",*p,*(p+3));

}

9.阅读下面函数func,其功能是计算用户输入的整数num的各位数字之积。

填空使程序完整。

#include

longfunc(longnum

{longk=1;

if(num<0)num=-num;

do{

k*=num%10;

num/=10;

}while(num!

=0

);

return(k);

}

main()

{longn;

printf("Pleaseinputanumber");

scanf("%ld",&n);

printf("Resultis:

%ld",func(n));

}

10.以下程序的输出结果是120

#include

fun(intb[],intn)

{inti,r=1;

for(i=0;i<=n;i++)r=r*b[i];

return(r);

}

main()

{intx,a[]={2,3,4,5,6,7,8,9};

x=fun(a,3);

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

}

11.下面程序段的输出结果是FO

#include

main()

{char*p[]={"LOOK","OUT","A","FM"};

inti;

for(i=3;i>=0;i--,i--)

printf("%c",*p[i]);

}

12.建立一个磁盘文件,文件名和内容由键盘输入。

#include

#include

voidmain()

{charch,fname[20];

_____________FILE*fp;

__________________;

scanf("%s",fname);

if((fp=fopen(_______fname

__________,"w"))==NULL)

exit(0);

ch=getchar();

while(ch!

='*')

{fputc(ch,fp);

putchar(ch);

ch=getchar();

}

fclose(___________fp

___________);

}

三、程序设计题

1.定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数,然后按顺序每5个数求出一个平均值,放在另一个数组中并输出。

2.从键盘输入一个字符串和一个字符,把此字符串中偶数位的字符变为输入的字符,要求用函数实现字符串偶数位字符的改变,在主函数中输入字符串和字符,并输出偶数位改变的字符串。

3.编程将一个输入的字符串逆序显示输出。

在主函数中输入字符串并输出逆序存放的字符串,在函数中实现字符串的逆序存放。

例如:

输入“abcdef”,输出”fedcba”

(此题是书上p202页的8.5题)

4.用递归方法求n阶勒让德多项式的值,递归公式为:

(此题是书上p202页的8.13题)

5.从键盘输入4个学生的有关数据,然后把它们转存到磁盘文件上去。

1.

#include

voidmain()

{inta[31];floatb[6];

inti,k=1;

while(k<31){

a[k]=2*k;k++;

}

k=1;i=1;

while(i<=5){

b[i]=(a[k]+a[k+1]+a[k+2]+a[k+3]+a[k+4])/5;

k=k+5;i++;

}

for(i=1;i<=5;i++)printf("%f\n",b[i]);

}_

2.

#include

#include

#defineMAX80

voidconvert(chars[],charch)

{inti=0;

while(s[i]!

='\0'){

if(i%2==0)s[i]=ch;

i++;

}

}

voidmain()

{chars[MAX],ch;

gets(s);

scanf("%c",&ch);

convert(s,ch);

puts(s);

}

3.

#include

#include

voidinv(char*x,intn)

{char*p,m,temp,*i,*j;

m=(n-1)/2;

i=x;j=x+n-1;p=x+m;

for(;i

{temp=*i;*i=*j;*j=temp;}

}

voidmain()

{charstr[80];

gets(str);

inv(str,strlen(str));

puts(str);

}

4.

#include

voidmain()

{intx,n;

floatp(int,int);

printf("\ninputn&x:

");

scanf("%d,%d",&n,&x);

printf("n=%d,x=%d\n",n,x);

printf("P%d(%d)=%6.2f\n",n,x,p(n,x));

}

floatp(intn,intx)

{if(n==0)

return

(1);

elseif(n==1)

return(x);

else

return((2*n-1)*x*p((n-1),x)-(n-1)*p((n-2),x))/n;

}

5.

#include

#defineSIZE5

structstudent_type

{charname[10];

intnum;

intage;

charaddr[15];

}stud[SIZE];

voidsave()

{FILE*fp;

inti;

if((fp=fopen("stu-list","wb"))==NULL)

{printf("cannotopenfile\n");

return;

}

for(i=0;i

if(fwrite(&stud[i],sizeof(structstudent_type),1,fp)!

=1)

printf("filewriteerror\n");

fclose(fp);

}

voidmain()

{inti;

for(i=0;i

scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);

save();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2