级C语言练习题.docx
- 文档编号:4694293
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:16
- 大小:21.07KB
级C语言练习题.docx
《级C语言练习题.docx》由会员分享,可在线阅读,更多相关《级C语言练习题.docx(16页珍藏版)》请在冰豆网上搜索。
级C语言练习题
2005级C语言练习题
班级__0502______姓名__王冠男____
一、选择题
1、一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是()
A)有零个或多个输入B)有零个或多个输出
C)有穷性D)可行性
2、以下叙述中正确的是()
A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
3、以下符合C语言语法的实型常量是()
A)1.2E0.5B)3.14.159EC).5E-3D)E15
4、算法具有五个特性,以下选项中不属于算法特性的是()(A)有穷性(B)简洁性(C)可行性(D)确定性
5、以下选项中可作为C语言合法常量的是()
A)-80.B)-080C)-8e1.0(D)-80.0e
6、以下不能定义为用户标识符是()
A)MainB)_0C)_intD)sizeof
7、以下选项中,不能作为合法常量的是()
A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0
8、数字字符0的ASCII值为48,若有以下程序()
main()
{
chara='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是
A)3,2B)50,2C)2,2D)2,50
9、有以下程序[]
main()
{
intm=12,n=34;
printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是()
A)12353514B)12353513C)12343514D)12343513
10、有定义语句:
intb;charc[10];则正确的输入语句是()
A)scanf("%d%s",&b,&c);B)scanf("%d%s",&b,c);
C)scanf("%d%s",b,c);D)scanf("%d%s",b,&c);
11、有以下程序
main()
{
inta,b,d=25;
a=d/10%9;b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是()
A)6,1B)2,1C)6,0D)2,0
12、有以下程序
main()
{
intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)if(p[i]%2)j+=p[i];
printf("%d\n",j);
}
程序运行后的输出结果是()
A)42B)45C)56D)60
13、以下能正确定义一维数组的选项是()
A)inta[5]={0,1,2,3,4,5};B)chara[]={0,1,2,3,4,5};
C)chara={'A','B','C'};D)inta[5]="0123";
14、有以下程序
main()
{
chara[7]="abc0\0a0\0";inti,j;
i=sizeof(a);j=strlen(a);
printf("%d%d\n",i,j);
}
程序运行后的输出结果是()
A)22B)76C)74D)73
15、有以下程序
main()
{
inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",a[1][i]);
}
程序运行后的输出结果是[]
A)012B)123C)234D)345
16、若以下选项中的变量已正确定义,则正确的赋值语句是()
A)x1=26.8%3B)1+2=x2C)x3=0x12D)x4=1+2=3;
17、设有以下定义
inta=0;
doubleb=1.25;
charc=’A’;
#defined2
则下面语句中错误的是()
A)a++;B)b++C)c++;D)d++;
18、设有定义:
floata=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相
符的是()
A)(a+b)*h/2B)(1/2)*(a+b)*hC)(a+b)*h*1/2D)h/2*(a+b)
18、有以下程序
main()
{
intx=102,y=012;
printf("%2d,%2d\n",x,y);
}执行后输出结果是()
A)10,01B)002,12C)102,10D)02,10
20、设有定义:
inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()
A)scanf("%d",pa);B)scanf("%d",a);
C)scanf("%d",&pa);D)scanf("%d",*pa);
21、有以下程序
main()
{inti,s=0;
for(i=1;i<10;i+=2)s+=i+1;
printf("%d\n",s);
}
程序执行后的输出结果是()
A)自然数1~9的累加和B)自然数1~10的累加和
C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和
22、若程序中定义了以下函数
doublemyadd(doublea,doubleb)
{return(a+b);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()
A)doublemyadd(doublea,b);B)doublemyadd(double,double);
C)doublemyadd(doubleb,doublea);D)doublemyadd(doublex,doubley);
23、有以下程序
charfun(charx,chary)
{if(x returny; } main() {inta='9',b='8',c='7'; printf("%c\n",fun(fun(a,b),fun(b,c))); } 程序的执行结果是() A)函数调用出错B)8C)9D)7 24、有以下程序段 inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是() A)5B)6C)8D)9 25、有以下程序 main() {chara[]="abcdefg",b[10]="abcdefg"; printf("%d%d\n",sizeof(a),sizeof(b)); } 执行后输出结果是() A)77B)88C)810D)1010 26、有以下程序 voidswap1(intc[]) {intt; t=c[0];c[0]=c[1];c[1]=t; } voidswap2(intc0,intc1) {intt; t=c0;c0=c1;c1=t; } main() {inta[2]={3,5},b[2]={3,5}; swap1(a);swap2(b[0],b[1]); printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]); } 其输出结果是() A)5353B)5335C)3535D)3553 27、有以下程序 intf(intb[][4]) {inti,j,s=0; for(j=0;j<4;j++) {i=j; if(i>2)i=3-j; s+=b[i][j]; } returns; } main() {inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf("%d\n",f(a)); } 执行后的输出结果是() A)12B)11C)18D)16 28、有以下定义 #include chara[10],*b=a; 不能给数组a输入字符串的语句是() A)gets(a)B)gets(a[0])C)gets(&a[0]);D)gets(b); 29、有以下程序 main() {char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"}; printf("%d\n",strlen(p[4])); } 执行后输出结果是() A)2B)3C)4D)5 30、有以下程序 #definef(x)x*x main() {inti; i=f(4+4)/f(2+2); printf("%d\n",i); } 执行后输出结果是() A)28B)22C)16D)4 31、设有以下语句 typedefstructS {intg;charh;}T; 则下面叙述中正确的是() A)可用S定义结构体变量B)可以用T定义结构体变量 C)S是struct类型的变量D)T是structS类型的变量 32、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是() A)chars[10]="abcdefg";B)chart[]="abcdefg",*s=t; C)chars[10];s="abcdefg";D)chars[10];strcpy(s,"abcdefg"); 33、有以下程序 #include main(intargc,char*argv[]) {inti,len=0; for(i=1;i printf("5d\n",len); }经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 exabcdefgh3k44 执行后输出结果是() A)14B)12C)8D)6 34、有以下程序 structSTU {charname[10]; intnum; intScore; }; main() {structSTUs[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580}, {"wangYin",20043,680},{"SunDan",20044,550}, {"Penghua",20045,537}},*p[5],*t; inti,j; for(i=0;i<5;i++)p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) {t=p[i];p[i]=p[j];p[j]=t;} printf("%5d%d\n",s[1].Score,p[1]->Score); } 执行后输出结果是() A)550550B)680680C)580550D)580680 35、以下叙述中正确的是[] A)预处理命令行必须位于源文件的开头 B)在源文件的一行上可以有多条预处理命令 C)宏名必须用大写字母表示 D)宏替换不占用程序的运行时间 36)以下语句或语句组中,能正确进行字符串赋值的是[] A)char*sp;*sp="right! ";B)chars[10];s="right! "; C)chars[10];*s="right! ";D)char*sp="right! "; 37、有以下程序 main() {chars[]="159",*p; p=s; printf("%c",*p++);printf("%c",*p++); } 程序运行后的输出结果是() A)15B)16C)12D)59 38、有以下程序 main() {intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) {for(j=0;j<=i;j++)printf("%4c",''); for(j=_____;j<4;j++)printf("%4d",num[j]); printf("\n"); } } 若要按以下形式输出数组右上半三角 1234 678 1112 16 则在程序下划线处应填入的是() A)i-1B)iC)i+1D)4-i 39)有以下程序 point(char*p){p+=3;} main() {charb[4]={'a','b','c','d'},*p=b; point(p);printf("%c\n",*p); } 程序运行后的输出结果是() A)aB)bC)cD)d 40、有以下程序 #defineP3 voidF(intx) {return(P*x*x);} main() {printf("%d\n",F(3+5));} 程序运行后的输出结果是() A)192B)29C)25D)编译出错 二、填空题 1、已知字符A的ACSII码值为65,以下语句的输出结果是___________________。 charch=’B’; printf("%c%d\n",ch,ch); 2、有以下语句段 intn1=10,n2=20; printf("__________",n1,n2); 要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20 3、有以下程序 main() {intt=1,i=5; for(;i>=0;i--)t*=i; printf("%d\n",t); }执行后输出结果是________________。 4、有以下程序 main() {intn=0,m=1,x=2; if(! n)x-=1; if(m)x-=2; if(x)x-=3; printf("%d\n",x); }执行后输出结果是________________。 5、有以下程序 voidf(inty,int*x) {y=y+*x;*x=*x+y;} main() {intx=2,y=4; f(y,&x); printf("%d%d\n",x,y); }执行后输出的结果是_____________。 6、以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。 请填空。 voidsstrcpy(char*s,char*t) {while(*s++=________________);} main() {charstr1[100],str2[]="abcdefgh"; sstrcpy(str1,str2); printf("%s\n",str1); } 7、下面程序的运行结果是: ________ 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); } 8、以下程序中给指针p分配三个double型动态内存单元,请填空。 #include main() {double*p; p=(double*)malloc(________); p[0]=1.5;p[1]=2.5;p[2]=3.5; printf("%f%f%f\n",p[0],p[1],p[2]); } 9、以下程序的运行结果是______________。 #include typedefstructstudent{ charname[10]; longno; floatscore; }STU; main() {STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d; d=a; if(strcmp(a.name,b.name)>0)d=b; if(strcmp(c.name,d.name)>0)d=c; printf("%ld%s\n",d.no,p->name); } 10、以下sum函数的功能是计算下列级数之和。 S=1+x+x2/2! +x3/3! +........+xn/n! 请给函数中的各变量正确赋初值。 doublesum(doublex,intn) {inti;doublea,b,s; __________________; for(i=1;i<=n;i++) {a=a*x;b=b*i;s=s+a/b;} returns; } 11、以下程序运行后的输出结果是_________ #defineS(x)4*x*x+1 main() { inti=6,j=8; printf("%d\n",S(i+j)); } 12、以下程序运行后的输出结果是_____________ main() { inta,b,c; a=10;b=20;c=(a%b<1)||(a/b>1); printf("%d%d%d\n",a,b,c); } 13、以下程序运行后的输出结果是______ voidswap(intx,inty) {intt; t=x;x=y;y=t;printf("%d%d",x,y); } main() {inta=3,b=4; swap(a,b);printf("%d%d\n",a,b); } 14、以下程序运行后的输出结果是_____ fun(inta) {intb=0;staticintc=3; b++;c++; return(a+b+c); } main() {inti,a=5; for(i=0;i<3;i++)printf("%d%d",i,fun(a)); printf("\n"); } 15、以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时, 函数返回字符串: yes! 否则函数返回字符串: no! 并在主函数中输出.所谓回文即 正向与反向的拼写都一样,例如: adgda.请填空. #include char*huiwen(char*str) {char*p1,*p2;inti,t=0; p1=str;p2=______; for(i=0;i<=strlen(str)/2;i++) if(*p1++! =*p2--){t=1;break;} if(____)return("yes! "); elsereturn("no! "); } main() {charstr[50]; printf("Input: ");scanf("%s",str); printf("%s\n",______); } 16、以下程序运行后的输出结果是___ main() {charc1,c2; for(c1='0',c2='9';c1 printf(“%c%c”,c1,c2); printf("\n"); ) 三、设计程序 1、设n=50,编写程序,计算并输出S(n)的值,要求结果保留6位小数。 S(n)=(1*2)/(3*4)-(3*4)/(5*6)+(5*6)/(7*8)+…+(-1)^(n-1)*[(2n-1)*2n]/[(2n+1)*(2n+2)]+… (参考答案-0.472034) 2、编写程序,求下面级数前n项的和S(n),要求S(n)应满足|S(n)-S(n-1)|<0.0001。 结果取6位小数。 1+1/2^4+1/3^4+1/4^4+…+1/n^4+…(其中,^表示幂运算)(1.082037) 3、设n=35,编写程序,计算并输出下面数列前n项的和,结果取6位小数。 2/3,4/5,6/7,8/9,10/11,12/13,14/15,…(38.161447) 4、编写程序,求一元非线性方程f(x)=2x+lnx-3.7=0在区间(1,5)上的近似根r,精确到0.00001。 参考答案(1.6114) 5、输入100个数,输出最小的10个数。 6、编写程序,自己产生一个二维数组A(N,N),(N取5),分别计算出数组中每一行数据的平均值。 7、输入5名学生记录,每个记录含学生姓名,学号,性别,成绩,按成绩从高至低的次序输出学生记录。 8、编写一个通用过程(函数或子程序),判断一个5位数是否满足以下条件: (1)该数能被3整除。 (2)取它的右边3位数,这个3位数也能被3整除。 例如: 12000、30444、51813。 要求调用该过程,计算并输出区间[10000,20000]之间满足条件的数据的个数。 (参考答案1002) 9、编写程序,从键盘输入一批不少于10个的任意数据,统计小于平均值的数据的个数。 10、计算并输出0°—360°之间每间隔40°(不含边界)的正弦值。 11、建立一单向链表。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题