二级c语言经典练习带答案_第1页
二级c语言经典练习带答案_第2页
二级c语言经典练习带答案_第3页
二级c语言经典练习带答案_第4页
二级c语言经典练习带答案_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

考研程序设计复习题1.以下程序的输出结果是______。main(){inta=0;a+=(a=8);printf("%d\n",a);}答案:16知识点:赋值表达式2.若有定义:inta=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是______。c=(a-=(b-5));c=(a%11)+(b=3);答案:3知识点:赋值表达式3.以下程序运行后的了输出结果是______。main(){inta=1,b=2,c=3;if(c=a)printf("%d\n",c);elseprintf("%d\n",b);}答案:1知识点:赋值表达式4.若有语句inti=-19,j=i%4;printf("%d\n",j);则输出结果是______。答案:-3知识点:算术表达式5.设有以下程序:main(){intn1,n2;scanf("%d",&n2);while(n2!=0);{n1=n2%10n2=n2/10;printf("%d",n1);}}程序运行后,如果从键盘上输入1298,则输出结果为______。答案:8921知识点:算术表达式6.下面程序的输出是______。unsignedfun6(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);return(k);}main(){unsignedn=26;printf("%d\n",fun6(n));}答案:12知识点:算术表达式7.设y是int型变量,请写出判断y为奇数的关系表达式______。答案:y%2知识点:算术表达式8.下列程序的输出结果是16.00,请填空。main(){inta=9,b=2floatx=______,y=1.1,z;z=a/2+b*x/y+1/2;printf("%5.2f\n",z);}答案:6.6知识点:算术表达式9.以下程序运行后的输出结果是______。main(){intx=0210;printf("%X\n",x);}答案:88知识点:整型数据10.以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请填空。#include<stdio.h>main(){char*p,s[6];intn;p=s;gets(p);n=*p-'0';while(______!='\0')n=n*8+*p-'0';printf("%d\n",n);}答案:*(++p)~*++p知识点:整型数据11.以下程序的输出结果是______。main(){unsignedshorta=65536;intb;printf("%d\n",b=a);}答案:0知识点:整型数据12.下面程序的输出是______。main(){intx=2;while(x--);printf("%d\n",x);}答案:-1知识点:自加、自减运算符和逗号运算符13.以下程序输出的最后一个值是______。intff(intn){staticintf=1;f=f*n;returnf;}main(){inti;for(i=1;i<=5;i++)printf("%d\n",ff(i));}答案:120知识点:局部变量及其作用域和生存期14.以下程序的输出结果是______。fun(intn,int*s){intf1,f2;if(n==1||n==2)*s=1;else{fun(n-1,&f1);fun(n-2,&f2);*s=f1+f2;}}main(){intx;fun(6,&x);printf("%d\n",x);}答案:8知识点:函数的递归调用15.以下程序运行后的输出结果是______。intf(inta[],intn){if(n>=1)returnf(a,n-1)+a[n-1];elsereturn0;}main(){intaa[5]={1,2,3,4,5},s;s=f(aa,5);printf(“%d\n”,s);}答案:15知识点:函数的递归调用16.下面程序的运行结果是:______。fun(intt[],intn){inti,m;if(n==1)returnt[0];elseif(n>=2){m=fun(t,n-1);returnm;}}main(){inta[]={11,4,6,3,8,2,3,5,9,2};printf("%d\n",fun(a,10));}答案:11知识点:函数的递归调用17.以下程序的输出结果是______。main(){intx=0;sub(&x,8,1);printf("%d\n",x);}sub(int*a,intn,intk){if(k<=n)sub(a,n/2,2*k);*a+=k;}答案:7知识点:函数的递归调用18.下面程序的运行结果是:______。intf(inta[],intn){if(n>1)returna[0]+f(&a[1],n-1);elsereturna[0];}main(){intaa[3]={1,2,3},s;s=f(&aa[0],3);printf("%d\n",s);}答案:6知识点:函数的递归调用19.以下程序的输出结果是______。voidfun(){staticinta=0;a+=2;printf("%d",a);}main(){intcc;for(cc=1;cc<4;cc++)fun();printf("\n")}答案:246知识点:函数的调用20.设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。main(){intfindbig(int,int,int);int(*f)(),x,y,z,big;f=______;scanf("%d%d%d",&x,&y,&z);big=(*f)(x,y,z);printf("big=%d\n",big);}答案:findbig知识点:函数的调用21.若有以下程序intf(intx,inty){return(y-x)*x;}main(){inta=3,b=4,c=5,d;d=f(f(3,4),f(3,5));printf("%d\n",d);}执行后输出结果是______。答案:9知识点:函数的调用22.有以下程序intsub(intn){return(n/10+n%10);}main(){intx,y;scanf(“%d”,&x);y=sub(sub(sub(x)));printf(“%d\n”,y);}若运行时输入:1234<回车>,程序的输出结果是______。答案:10知识点:函数的调用23.以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。voidfun(int*x,int*y){……}main(){inta=10,b=20;______;p=fun;p(&a,&b);……}答案:void(*p)()~void(*p)(int*,int*)知识点:函数的调用24.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。______(double,double);main(){doublex,y;scanf("%1f%1f",&x,&y);printf("%1f\n",max(x,y));}doublemax(doublea,doubleb){return(a>b?a:b);}答案:doublemax~externdoublemax知识点:函数的定义和返回值25.以下程序运行后输出结果是______。#include<string.h>char*ss(char*s){char*p,t;p=s+1;t=*s;while(*p){*(p-1)=*p;p++;}*(p-1)=t;returns;}main(){char*p,str[10]=”abcdefgh”;p=ss(str);printf(“%s\n”,p);}答案:bcdefgha知识点:函数的定义和返回值26.下面程序的运行结果是:______。#include<stdio.h>intf(inta[],intn){if(n>1)returna[0]+f(a+1,n-1);elsereturna[0];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},s;s=f(aa+2,4);printf("%d\n",s);}答案:18知识点:函数之间对一维数组和数组元素的引用27.以下程序的输出结果是______。main(){inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;for(i=0;i<3;i++)s+=a[i][i]+a[i][3-i-1];printf("%d\n",s);}答案:30知识点:二维数组的定义和二维数组元素的引用28.以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值。请填空。voidfun(int,int,int(*)[4],int*);main(){inta[3][4]={{12,41,36,28},{19,33,15,27}{3,27,19,1}},b[3],i;fun(3,4,a,b);for(i=0;i<3;i++)printf("%4d",b[i]);printf("\n");}voidfun(intm,intn,intar[][4],int*br){inti,j,x;for(i=0;i<m;i++){x=ar[i][0];for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];______=x;}}答案:br[i]~*(br+i)知识点:二维数组和指针29.若有定义语句:chars[100],d[100];intj=0,i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注意:不得使用逗号表达式)while(s[i]){d[j]=______;j++;}d[j]=0;答案:s[i++]知识点:一维数组的定义和一维数组元素的引用30.以下程序的输出结果是______。main(){intarr[]={30,25,20,15,10,5},*p=arr;p++;printf("%d\n",*(p+3));}答案:10知识点:一维数组和指针31.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是______。intw[10]={23,54,10,33,47,98,72,80,61},*p=w;答案:*(p+5)~p[5]知识点:一维数组和指针32.以下程序段的输出结果是______。inti=9;printf("%o\n",i);答案:11知识点:数据输出33.以下程序的输出结果是______。main(){inta=177;printf("%o\n",a);}答案:261知识点:数据输出34.有以下程序#include<stdio.h>main(){charch1,ch2;intn1,n2;ch1=getchar();ch2=getchar();n1=ch1-'0';n2=n1*10+(ch2-'0');printf("%d\n",n2);}程序运行时输入:12<回车>,执行后输出结果是______。答案:12知识点:数据输入35.有以下程序main(){intn=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x-=3;printf("%d\n",x);执行后输出结果是______。答案:-4知识点:if语句和用if语句构成的选择结构36.以下程序运行后的输出结果是______。main(){inta=1,b=3,c=5;if(c=a+b)printf("yes\n");elseprintf("no\n");}答案:yes知识点:if语句和用if语句构成的选择结构37.若从键盘输入58,则以下程序输出的结果是______。main(){inta;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);if(a>30)printf("%d",a);}答案:585858知识点:if语句和用if语句构成的选择结构38.下程序段的输出结果是______。intn='c';switch(n++){default:printf("error");break;case'a':case'A':case'B':printf("good");break;case'c':case'C':printf("pass");case'd':case'D':printf("warn");}答案:passwarn知识点:switch语句以及用switch语句和break语句构成的选择结构39.以下程序的输出结果是______。main(){inta=5,b=4,c=3,d;d=(a>b>c);printf("%d\n",d);}答案:0知识点:关系运算和逻辑运算40.若有以下程序main(){intp,a=5;if(p=1!=0)printf("%d\n",p);elseprintf("%d\n",p+2);}执行后输出结果是______。答案:1知识点:关系运算和逻辑运算41.表示条件:10<x<100或x<0的C语言表达式是______。答案:(x>10&&x<100||x<0)知识点:关系运算和逻辑运算42.若已知a=10,b=20,则表达式!a<b的值为______.答案:1知识点:关系运算和逻辑运算43.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是______答案:x>5||x<-5知识点:关系运算和逻辑运算44.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式______。答案:x==0知识点:关系运算和逻辑运算45.以下程序运行后的输出结果是______。main(){intp=30;printf("%d\n",(p/3>0?p/10:p%3));}答案:3知识点:条件表达式构成的选择结构46.以下程序运行后的输出结果是______。main(){intx,a=1,b=2,c=3,d=4;x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;printf("%d\n",x);}答案:1知识点:条件表达式构成的选择结构47.以下程序运行后的输出结果是______。main(){inti=10,j=0;do{j=j+i;i--;}while(i>2);printf("%d\n",j);}答案:52知识点:do-while语句和do-while语句构成的循环结构48.以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135则输出531。请填空。#include<stdio.h>main(){intn,s;printf("Enteranumber:");scanf("%d",&n);printf("Output:");do{s=n%10;printf("%d",s);______;}while(n!=0);printf("\n");}答案:n=n/10~n/=10知识点:do-while语句和do-while语句构成的循环结构49.有以下程序main(){intt=1,i=5;for(;i>=0;i--)t*=i;printf("%d\n",t);}执行后输出结果是______。答案:0知识点:for语句和用for语句构成的循环结构50.以下程序的输出结果是______。main(){ints,i;for(s=0,i=1;i<3;i++,s+=i);printf("%d\n",s);}答案:5知识点:for语句和用for语句构成的循环结构51.若有以下程序main(){inta[4][4]={{1,2,-3,-4},(0,-12,-13.14},{-21,23,0,-24},{-31,32,-33,0}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++){if(a[i][j]<0)continue;if(a[i][j]==0)break;s+=a[i][j];}}printf("%d\n",s);}执行后输出结果是______。答案:58知识点:for语句和用for语句构成的循环结构52.若输入字符串:abcde<回车>,则以下while循环体将执行______次。while((ch=getchar())=='e')printf("*");答案:0知识点:while语句和while语句构成的循环53.以下程序运行后的输出结果是______。main(){intp[7]={11,13,14,15,16,17,18};inti=0,j=0;while(i<7&&p[i]%2==1)j+=p[i++];printf("%d\n",j);}答案:24知识点:while语句和while语句构成的循环54.下列程序的输出结果是______。voidfun(int*n){while((*n)--);printf("%d",++(*n));}main(){inta=100;fun(&a);}答案:0知识点:while语句和while语句构成的循环55.执行以下程序后,输出'#'号的个数是______。#include<stdio.h>main(){inti,j;for(i=1;i<5;i++)for(j=2;j<=i;j++)putchar('#');}答案:6知识点:循环结构的嵌套56.以下程序的输出结果是______。main(){char*p="abcdefgh",*r;long*q;q=(long*)p;q++r=(char*)q;printf("%s\n",r);}答案:efgh知识点:对指针变量的操作57.以下程序的运行结果是:______#include<string.h>char*ss(char*s){returns+strlen(s)/2;}main(){char*p,*str="abcdefgh";p=ss(str);printf("%s\n",p);}答案:efgh知识点:使指针指向一个字符串58.下列程序的输出结果是______。#include<stdio.h>main(){charb[]="ABCDEFG";char*chp=&b[7];while(--chp>&b[0])putchar(*chp);putchar('\n');}答案:GFEDCB知识点:使指针指向一个字符串59.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。请填空。voidsstrcpy(char*s,char*t){while(*s++=______);}main(){charstr1[100],str2[]="abcdefgh";sstrcpy(str1,str2);printf("%s\n",str1);}答案:*t++~*(t++)知识点:用一个一维字符数组来存放字符串60.以下程序的输出结果是______。main(){chars[]="abcdef";s[3]='\0';printf("%s\n",s);}答案:abc知识点:用一个一维字符数组来存放字符串61.下列程序的输出结果是______。#includemain(){charb[30],*chp;strcpy(&b[0],"CH");strcpy(&b[1],"DEF");strcpy(&b[2],"ABC");printf("%s\n",b);}答案:CDABC知识点:用于字符串处理的函数62.下面程序的输出结果是______。#include<stdio.h>main(){staticcharb[]="Goodbye";char*chp=&b[7];while(--chp>=&b[0])putchar(*chp);putchar('\n');}答案:eybdooG知识点:字符串数组63.以下程序运行后的输出结果是______。#include<string.h>voidfun(char*s,intp,intk){inti;for(i=p;i<k-1;i++)s[i]=s[i+2];}main(){chars[]="abcdefg";fun(s,3,strlen(s));puts(s);}答案:abcfg知识点:字符串数组64.下列程序段的输出结果是______。main(){charb[]="Hello,you"b[5]=0;printf("%s\n",b);}答案:Hello知识点:字符串数组65.以下程序运行后的输出结果是______。#include<string.h>main(){charch[]="abc",x[3][4];inti;for(i=0;i<3;i++)strcpy(x[i],ch);for(i=0;i<3;i++)printf("%s",&x[i][i]);printf("\n");}答案:abcbcc知识点:字符串数组66.下面程序的输出结果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);printf("\n");}答案:SO知识点:字符串数组67.执行以下程序段后,s的值为______。staticcharch[]="600";inta,s=0;for(a=0;ch[a]>='0'&&ch[a]<='9';a++)s=10*s+ch[a]-'0';答案:600知识点:字符串数组68.以下程序运行后的输出结果是______。main(){charm;m='B'+32;printf("%c\n",m);}答案:b知识点:字符型常量69.已知字母A的ASCII码为65.以下程序运行后的输出结果是______。main(){chara,b;a=’A’+’5’-‘3’;b=a+’6’-printf(“%d%c\n”,a,b);}答案:67G知识点:字符型常量70.以下程序运行后的输出结果是______。main(){charc1,c2;for(c1='0',c2='9';c1<c2;c1++,c2--)printf("%c%c",c1,c2);printf("\n");}答案:0918273645知识点:字符型常量71.若有以下程序main(){chara;a='H'-'A'+'0';printf("%c\n",a);}执行后输出结果是______。答案:7知识点:字符型常量72.以下程序的功能是计算:1+12+123+1234+12345。请填空。Main(){intt=0,s=0,I;for(I=1;I<=5;I++){t=I+______;s=s+t;}printf(“s=%d\n”,s);}答案:t*10~10*t知识点:程序分析73.以下函数sstrcat()的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符串为efgh,函数调用后S所指字符串为abcdefgh.请填空。#inclide<string.h>voidsstrcat(char*s,char*t){intn;n=strlen(s);while(*(s+n)=______){s++;t++;}}答案:*t知识点:程序分析74.以下函数的功能是:求x的y次方,请填空。doublefun(doublex,inty){inti;doublez;for(i=1,z=x;i<y;i++)z=z*______;returnz;}答案:x知识点:程序分析75.以下程序运行后的输出结果是______。main(){chara[]="123456789",*p;inti=0;p=a;while

温馨提示

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

评论

0/150

提交评论