您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计作业2答案
C语言程序设计第2次作业答案一、单项选择题答案1B2B3D4C5B6B7D8D9B10C11C12B13A14C15B16B17D18A19D20B一.单项选择题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,++*p2.下面函数调用语句含有实参的个数为()fun((a,b,c,d),(m,n),(f,g));A)1B)3C)4D)23.函数形式正确的是()。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.以下程序的输出结果是()。#includestdio.hmain(){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)SW6.以下程序的输出结果是()。#includestdio.hintw=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)12007.以下程序的输出结果是()。#includestdio.hintw=3;f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}main(){inta=2,i;for(i=0;i3;i++)printf(%d,f(a));}A)777B)71013C)7911D)7898.以下程序的输出结果是()。#includestdio.hmain(){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,69.以下程序的输出结果是()。#includestdio.h#definePT5.5#defineS(x)PT*x*xmain(){inta=1,b=2;printf(%4.1f\n,S(a+b));}A)49.5B)9.5C)12.5D)33.510.下面程序段的输出结果是()。#includestdio.h#defineLETTER1main(){charstr[20]=Language,c;inti=0;while((c=str[i])!='\0'){i++;#if(LETTER)if(c='a'&&c='z')c=c-32;#elseif(c='A'&&c='Z')c=c+32;#endifprintf(%c,c);}}A)LanguageB)languageC)LANGUAGED)lANGUAGE11.若有说明:char*s[]={“FORTRAN”,“BASIC”,”PASCAL”,”JAVA”,”C”};则表达式*s[1]*s[3]比较的是()。A)字符F和字符PB)字符串BASIC和字符串JAVAC)字符B和字符JD)字符串FORTRAN和字符串PASCAL12.如下程序的输出结果是()。#includestdio.hmain(){chara[20]=chinese;char*p=a;for(;pa+7;p+=2)putchar(*p);}A)chineseB)cieeC)chineD)cie13.若有定义:inta[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为()。A)*(*(a+i)+j)B)(a+i)[j]C)*(a+i+j)D)*(a+i)+j14.若有以下定义和语句,则对a数组元素的正确引用为()。inta[2][3],(*p)[3];p=a;A)(p+1)[0]B)*(*(p+2)+1)C)*(p[1]+1)D)p[1]+215.若以下main函数经过编译、连接后得到的可执行文件名为echo.exe,若希望在系统的命令状态下输入某一命令行后得到的输出是chiantianjin,则命令行的内容应是()。A)chiantianjinB)echochiantianjinC)echoD)echochiantianjinchinatianjin16.以下对结构体变量stu中成员age的非法引用是()。structstudent{intage;intnum;}stu,*p;p=&stu;A)stu.ageB)student.ageC)p-ageD)(*p).age17.已知学生记录描述为: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=a19.表达式ab||~c&d的运算顺序是()。A)~,&,,||B)~,||,&,C)~,&,||,D)~,,&,||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.[EFGHIJKL]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,i8;i++)]=”it’sacomputer”;for(i=0;j+=i;;i++){printf(%c,c[j]);;printf(“%c”,c[j];)6.如下程序段的输出结果是123。#includestdio.hmain(){charstr[]=1a2b3c;inti;for(i=0;str[i]!='\0';i++)if(str[i]='0'&&str[i]='9')printf(%c,str[i]);}7.如下程序段的输出结果是EFGHIJKL。#includestdio.hmain(){charstr[][10]={ABCD,EFGH,IJKL,MNOP},k;for(k=1;k3;k++)printf(%s\n,str[k]);}8.如下程序段的输出结果是n1=1,n2=6。#includestdio.hmain(){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的各位数字之积。填空使程序完整。#includestdio.hlongfunc(longnum){longk=1;if(num0)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。#includestdio.hfun(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。#includestdio.hmain(){char*p[]={LOOK,OUT,A,FM};inti;for(i=3;i=0;i--,i--)printf(%c,*p[i]);}12.建立一个磁盘文件,文件名和内容由键盘输入。#includestdio.h#includestdlib.hvoidmain(){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.编程将
本文标题:C语言程序设计作业2答案
链接地址:https://www.777doc.com/doc-4982516 .html