C语言程序设计练习题1及答案_第1页
C语言程序设计练习题1及答案_第2页
C语言程序设计练习题1及答案_第3页
C语言程序设计练习题1及答案_第4页
C语言程序设计练习题1及答案_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计练习题1及答案C语言练习题一选择题1以下不正确的C语言标识符是(D)。A.ABCB.abcC.a_bcD.2以下正确的c语言标识符是()。A.%xB.a+bC.a123D.test!3一个c程序的执行是从().A.main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束4一个C语言程序是。A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成5C语言程序的基本单位是()。A.过程B.函数c子程序D,标识符6编辑程序的功能是()。A.建立并修改程

2、序B.将c源程序编译成目标程序C.调试程序D.命令计算机执行指定的操作7以下结果为整数的表达式(设有inti;charc;floatf;)().A.i+fB.i*cC.c+fD.i+c+f以下不正确的语句(设有intp,q)是()。A.P*=3;/=q;+=3;D.p&&=q;9以下使i的运算结果为4的表达式是()oA.inti=0,j=0;(i=3,(j+)+i);B.inti=1,j=0;j=i=(i=3)*2);i=0,j=1;(j=1)?(i=1);(i=3);D.inti=1,j=1;i+=j+=2;10设n=10,i=4、则赋值运算n%=i+1执行后,n的值是().

3、A.0B,3C,2D,111逗号表达式(a=3*5,a*4),a+15的值为(),a的值为()。A.15B.60C.30D.不确定A.60B.30C.15D.9012如果a=1,b=2,c=3,d=4,贝U条件表达式a<b?a:c<d?c:d的值为().A.1B.2C.3D.413若有代数式3ae/bc,则正确的C语言表精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载2达式是(C)A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*314在C语言中,要求运算数必须是整形的运算符是(D).A)/B)+C)!=D)%15若以下变量均是整形

4、)且num=sum=7;则计算表达式sum=num+)sum+)后sum的值为(A).A)7+numB)C)9D)1016在C语言中,int、char和short三种类型数据在内存中所占用的字节数(D)。A)用户自己定义B)均为2个字节C)是任意的D)有所用的机器的机器字长决定17设变量a是整型,f是实型,i是双精度型,则表达式10+?a?+i*f值的数据类型为(C)。A)int不确定结果是(CB)3C)44)的结果是(C)3D)4B)floatC)doubleD)18设intn=3;则+n的),n的结果是(C)A)2D)519语句(1,2,3,D)oA)1B)220有如下程序,若要求a1、a

5、2、c1、c2的值分别为10、20、A、B)正确的数据输入是(D).main()inta1,a2;charc1,c2;scanf(scanf(A)1020ABB)1020ABC)1020ABCD)1020AB21已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据是,正确的数据输入方式是(A)ointa1,a2;charc1,c2;scanf("d%c%d%c,&a1,&c1,&a2,&c2);A)10A20BB)10A20BC)10A20BD)10A20JB22阅读以下程序,当输入数据的形式为:25

6、,13,10,正确的输出结果为(D)omain()intx,y,z;scanf("d%d%d,&x,&y,&z);printf("x+y+z=%d,x+y+z);A)x+y+z=4B)x+y+z=35C)x+z=35D)不确定值23设X,Y均为float变量,D)x=y=10;则以下不合法的赋值语句是(B)A)+x;B) y=(x%2)/10;C)x*=y+8;24以下程序的执行结果是(A)#includemain()intsum,pad;精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载sum=pad=5;pad=sum+;pad+;+

7、pad;printf(A)7B)6C)5D)425有以下定义:inta;longb;doublex,y;则以下选项中正确的表达式是A)a%B)a=x!=y;C)%bD)y=x+y=x26以下选项中能表示合法常量的是(D)A)整数:1,200B)实数:C)字符斜杠:?D)字符串:27表达式a+=a-=a=9的值是(D)A)9B)-9C)1D)028有以下程序(B)#includemaininta=1)b=2;whileb+=a;a+=2;b%=10;printf;程序运行后的输出结果是A)5,11B)7,1C)7,11D)6,129有以下程序(B)#includecstdio.h>main

8、inty=10;while;printf;程序执行后的输出结果是A)y=0B)y=-1C)y=1D)while构成无限循环30有以下程序(C)#include<stdio.h>mainchars口="rstuyprintf;程序运精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载5行后的输出结果是A)tuvB)字符t的ASCII码值C)t错31有以下程序(B)#include<>#include<>maincharx="STRING;x0=0;x1=?0?;x2=?0?;printf,strlen);程序运行后的输出结果是A)

9、61B)70C)63D)7132有以下程序(D)#includevstdio.h>intf;mainintn=1,m;m=f);printf;intfreturnx*2;程序运行后的输出结果是A)1B)2C)4D)33以下程序段完全正确的是(C)A)int*p;scanf;B)int*p;scanf;C) intk,*p=&k;scanf;D)intk,*p:;*p=&k;scanf;34下列定义数组的语句中,正确的是(B)A)intN=10;intxN;B)ddefineN10intxN;C)intx0.10;D) intx口;35若要定义一个具有5个元素的整型数组,以

10、下错误的定精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载6义语句是(D)A)inta5=0;B)intb=0,0,0,0,0;C)intc2+3;D)出D)inti=5,di;36有以下程序#includevstdio.h>voidf;maininta5=1,2,3,4,5,*r=a;f;printf;voidfp=p+3;printf;程序运行后的输出结果是(D)A)1,4B)4,4C)3,1D)4,137有以下程序inti、j、k、t;fork=i;forifk=j;t=ai;ai=ak;ak=t;mainintaa10=123,4,5,6,7,i;fun;forpr

11、intf);printf;程序运行后的输出结果是(A)A)7,2,5,4,3,6,1B)1,6,3,4,5,2,7C)7,6,5,4,3,2,1D)1,7,3,5,6;2,1下列选项中,能够满足若字符串s1等于字符串s2,则执行要求的是(A)A)if=0)ST;B)ifST;C)if=1)ST;D)ifST;39以下不能将s所指字符串正确复制到t所指存储空间的是(C)A)while精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载t+;s+;B)for;C)do*t+=*s+;while;D)for;40有以下程序#include<stdio.h>#include<

12、;string.h>mainchara20="ABCD0EFG'0",b口="IJK;strcat;printf;程序运行后的输出结果是(B)A)ABCDEOFGOIJKB)ABCDIJKC)IJKD)EFGIJK41有以下程序#include<stdio.h>voidfuniffun;printf;mainfun;printf;程序运行后的输出结果是(D)A)137B)731C)73D)3742有以下程序#include<stdio.h>intfunstaticintx=1;x+=1;returnx;maininti;s=1

13、;fors+=fun;printf;程序运行后的输出结果是(B)A)11B)21C)6D)12043有以下程序#精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载8inctude<stdio.h>ininclude<stdlib.h>mainint*a)*b)*c;a=b=c=malloc);*a=1;*b=2,*c=3;a=b;printf;程序运行后的输出结亲是(A)A)3,3,3B)2,2,3C)1,2,3D)1,1,344有以下程序#include<stdio.h>mainints,t,A=10;doubleB=6;s=sizeof;t=

14、sizeof;printf;在VC6平台上编译运行,程序运行后的输出结果是(C)A)2,4B)4,4C)4,D)10,645若有以下语句typedefstructSintg;charh;T;以下叙述中正确的是(B)A)可用S定义结构体变量B)可用T定义结构体变量C)S是struct类型的变量D)T是structS类型的变量二、写出下列每个程序运行后的输出结果1.#includevoidmain()inti,s=0;for(i=1;i+)if(s>50)break;精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载9if(i%2=0)s+=i;2. #includevoidma

15、in()charch='*';inti,n=5;while(1)for(i=0;iif(-n=0)break;3.#includevoidmain()intx=24,y=88;dointi=2,p=1;while(x%i=0&&y%i=0)p*=i;x/=i;y/=i;i+;while(x>=i&&y>=i);4.#includevoidmain()inta9=36,25,48,24,55,40,18,66,20;inti,b1,b2;a0for(i=2;iif(ai5.#includevoidmain()inta=10,b=20;i

16、ntb=a+25;a*=4;6.#includevoidSelectSort(inta,intn)inti,j,k,x;for(i=1;ifor(j=i;jif(ajx=ai-1;ai-1=ak;ak=x;voidmain()精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载iointi;inta6=20,15,32,47,36,28;SelectSort(a,6);for(i=0;i7.#includevoidLE(int*a,int*b)intx=*a;*a=*b;*b=x;voidmain()intx=15,y=26;LE(&x,&y);#include#in

17、cludestructWorkercharname15;姓名intage;年龄floatpay;工资;intEqual(structWorker*r1,structWorker*r2)if(strcmp(r1->name,r2->name)=0)return1;elsereturn0;voidmain()structWorkerinti;for(i=0;iif(Equal(a+i,&x)break;if(i>=4)没有查找所需要的记录elseprintf(%d9.#includevoidmain()inta=0,b=2,c=3;switch(a)case0:switc

18、h(b=2)case1:精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载putchar('&');break;case2:putchar();bfeak;case1:switch(c)case1:putchar('$');case2:putchar('*');break;default:putchar('#');10.#includevoidmain()intm=1,n=2,t=3;+m;t+=+n;m+=t;答案:*intn=10,t;t=n*2;printf(1. i,s=15,562.*2644.20*

19、5.3.1020403540206. 152023236477. 15262615defa59.&10.2210202236三、写出下列每个函数的功能1.intSE(intn)/n为大于等于1的整数intx,s=0;输入d个整数:if(n=1)returnx;s=x;精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载12while(-n)returns;2. #includevoidWA(inta,intn)inti,k,j,x;for(i=0;ifor(j=i+1;jak)k=j;x=ai;ai=ak;ak=x;3.#includeint*LJ(inta,intn)int

20、i,k=0;for(i=1;iak)k=i;return&ak;4.intOutput(structIntNode*f)intsum=0;if(!f)return-9999;/用返回特定值-9999表示空表while(f)sum+=f->data;f=f->next;returnsum;假定structIntNode的类型定义为:structIntNodeintdata;/结点值域structIntNode*next;/结点指针域;答案:1.求出从键盘上输入的n个整数之和并返回。2 .采用选择排序的方法对数组a中的n个整数按照从大到小的次序重新排列。3 .求出数组a中n个元

21、素的最大值元素,返回该元素的地址4.对于以表头指针为f的链表,求出并返回所有结点中data域的值之和。四程序填空1.下面程序的功能是:将一个数插入到一个有序数组中,使插入以后的数组仍然有序。采用的算法是:确定要插入数的位置,然后将比这个数大的数后移一个位置,在空出的位置上将该数插入。int#includevoidmain()inti,p;a11=1,3,6,7,9,12,14,18,19,20,x;printf(for(i=0,p=10;ifor(i=9;;i-)ai+1=ai;;printf(for(i=0;i2.词的长度以下程序能统计一个英文句子中最长单#includeintcount(c

22、har*p)intword=0,max=0;while(*p!=if()p+;main()while(*p='a')|(*p=;p+;max=word;returnmax;voidcharstr80;gets(str);'A'精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载printf(3.下面程序中)函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。主函数中输出和值。#include#defineM2#defineN4k=0;k=j;=s;intprintf(voidSumColumMin(intaMN

23、,int*sum)if(aki>aji)inti,j,k,s=0;for(i=0;is+=voidmain()for(j=0;jSumColumMin();xMN=3,2,5,1,4,1,8,3,s;4.以下程序采用宜接选择法对数组a中的10个数进行降序排列,然后按每行5int个数的格式输出。#includevoidmain()i,j,k,t,a10=1,435,7,9,2,0,6,8;for(j=0;jk=j;for(i=j+1;iif(*(a+i)>)k=i;t=aj;*(a+j)=;*(a+k)=t;for(i=0;iprintf(i%5)?,*(a+i);精选公文范文,管理

24、类,工作总结类,工作计划类文档,感谢阅读下载15printf(5.以下程序的功能是计算下列级数之和s=1+x+x2+x3/3!+xn/n!doublesum(intx,intn)inti;a=;b=;s=;for(i=1;iintx,n;doubles;;printf(doublea,b,s;voidmain()scanf(6.下面请填空。#includevoidmain()invert函数实现数组元素值的逆置,即a0,a9互换,a1,a8互换,以此类推。voidinvert(int*s,intnum);inta10=1,2,3,4,5,6,7,8,9,10,i,n=10;for(i=0;iv

25、oidinvert(int*s,intnum)int*t,k;t=s+num;while()k=*s;*s=*t;*t=k;;7.下面程序的功能是在数组中同时查找最大元素下标和最小元素下标)分别存放在main函数的变量max和min中,请填空。#includevoidfun(int*a,intn,int*max,int*min)inti;*max=*min=0;for(i=1;i精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载16if(*(a+i)>*(a+*max)intprintf(elseif(*(a+i)voidmain()inta10=3,15226,9,28,7

26、,1,4,12;max,min;程序输出为:max=5,min=7面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串c中。即字符串c为:abcdefghijklmnpq#include#includevoidmain()chara=charb=i=0,j=0,k=0;while(ai!=ck=0'elsep=a+i;charc80,*p;int0'&&bj!=0")if(aiif()p=b+j;strcat(c,p);puts(c);9.以下程序可把输入的十进制数以十六进制的形式输出。#includevoidmain()char

27、intc64,d,i=0,base=16;longn;doci=;精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载17i+;n=n/base;while(n!=0);for(i-;i>=0;-i)d=;);10.以下程序能统计并输出1至100之间所有能被3整除但不能被7整除的所有正整数。#include#defineM100voidfun(intm,int*p,int*t)inti,num=0;for(i=1;ivoidmain()intaM,n,k;;for(k=0;k11.程序功能:有10个数按升序放在一个数组中,输入一个数,要求用折半查找该数是数组中的第几个元素,如果

28、该数不在数组中,打印出“NO。折半查找法:设数组长度为n,则将输入的数m与an/2比较,若man/2,则将an/2到an的数继续折半进行查找。#a10=12,32,45,62,71,76,80,85,90,95;includemain()intintnum,bott,top,mid;printf(scanf(bott=0;top=9;精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载18while(bottmid=if(num=amid)elseif(num12.下面程序是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果。函数Sum计算

29、数组元素之和。请完成下列程序。#includemain()Total;intTotalSum(int,int);voidinta5=2,3,6,8,10;Total=®countintintTotalSum(intarray,intlen)intsum=0;for(inti=0;i13.以下程序是判断输入的字符串是否是回文”,请填空。#include#includevoidmain()chars81,*p1,*p2;intn;gets(s);n=strlen(s);p1=s;p2=;while()if(*p1!=*p2)break;elsep1+;;if(p114.下面程序功能是检查

30、一个4阶矩阵是否对称,请填空。#includevoidmain()intnum44;int精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载i,j,flag=0;printf(for(i=0;ifor(j=0;j答案:1、p=ii>=pap=x2、word+max5、a=a*xb=b*is=sum(x,n)6、stop12、TotalSum(a,5)Totalsum+=arrayi13、s+n-1*p1!=0p2-14、&numijnumij!=numjiflag=1五编程题1输入三个整数x,y,z,请把这三个数小到大输出。2给一个不多于5位的正整数,要求:一、求它是

31、几位数,二、逆序打印出各位数字。3.一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,+位与千位相同。4.判断101-200之间有多少个素数,并输出所有素数。判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。5.从数字1开始到200之间,求能被3整20除的数,然后求这些数的累加和,直到和的值不大于100为止。输出这些数及累加和。6.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析:兔子程计算1!+2!+3!+,+n!的规律

32、为数列1,1,2,3,5,8,13,21.7.编入两个正整数m和n,求其最大公约数和最小公倍数。9.编写一个函数fun(),首先从键盘上输入一个4行4列的一个实数矩阵到一个二维数组a44中,接着求出主对角线上元素之和,最后返回求和结果。10.编写一个主函数,计算1+3+32+.+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。11.编写一个主函数,已知6WaW40,15wb仅30出满足不定方程2a+5b=120的全部整数组解。如(13,20)就是其中的一组解。12.编程在一个已知的字符串中查找最精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载21长

33、单词,假定字符串中只含字母和空格,空格用来分隔不同单词。13.输入一个五位以内的正整数,判断它是一个几位数;请按序输出其各位数字;逆序输出其各位数字。如输入:56439,输出:5位数5,6,4,3,99,3,4,6,514.编写子函数:用冒泡法将一个数组排成升序的函数-SUB1;在升序数组中插入一个数,并且保持该数组仍为升序数组的函数-SUB2。主函数:输入任意10个正整数给数组;调用SUB1对数组进行排序;从键盘输入一个正整数,调用SUB2将其插入该数组。15.编写函数:用选择法将数组排成降序的函数-SUB1;用折半查找法查找某数是否在给定的数组当中的函数-SUB2。主函数:输入任意10个正

34、整数给数组,调用SUB1对数组进行排序,从键盘输入一个正整数,调用SUB2在数组中进行查找,找到后输出“OK,没有找到则输出“NOFOUND精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载2216、编写一个函数实现对两个字符串的比较。不用使用C语言提供的标准函数strcmp。要求在主函数中输入两个字符串,并输出比较的结果。()intx,y,z,t;if(x>y)t=x;x=y;y=t;/*交换x,y的值*/if(x>z)t=z;z=x;x=t;/*交换x,z的值*/if(y>z)t=y;y=z;z=t;/*交换z,y的值*/printf()longa,b,c,d

35、,e,x;a=x/10000;/*分解出万位*/b=x000/1000;/*分解出千位*/C=x00/100;/*分解出百位*/d=x0/10;/*分解出+位*/e=x;/*分解出个位*/if(a!=0)printf(elseif(b!=0)printf(elseif(c!=0)elseif(e!=0)printf(3main()longge,shi,qian,wan,x;scanf(wan=x/10000;shi=x0/10;ge=x;if(ge=wan&&shi=qian)/*个位等于万精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载23位并且+位等于千位*/

36、printf(elseprintf(4#includemain()intm,i,k,h=0,leap=1;printf(for(m=101;mfor(i=2;iif(h=0)leap=1;printf(5.main()inti,sum=0;for(i=1;iprintf("sum=%d,sum)6.main()longf1,f2;inti;f1=f2=1;for(i=1;iif(i%2=0)控制输出,每行四个*/f1=f1+f2;/*前两个月加起来赋值给第三个月*/f2=f1+f2;/*前两个月加起来.main()printf(赋值给第三个月*/7.#includemain()lon

37、gs=0,t=1;inti,n;printf(scanf(for(i=1;iprintf(inta,b,num1,num2,temp;scanf(if(num1temp=num1;num1=num2;num2=temp;a=num1;b=num2;for(;b!=0;)/*利用辗除法,直到b为0为止*/temp=a%b;a=b;b=temp;printf(9.doublefun()精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载24doublea44;doubles=0;inti,j;输入一个4*4的数值矩阵for(i=0;ifor(j=0;j10. #includevoidma

38、in()inti;用i作为循环变量intp=1;用p作为累乘变量ints=1;用s作为累加循环变量for(i=1;i11. #includevoidmain()inta,b;for(a=6;afor(b=15;bif(2*a+5*b=120)12#include#includevoidmain()charstring80,*p;inti=0,max=0;clrscr();printf(gets(string);/printf(p=string;while(*p!=0')if(*p=")if(maxi=0;elsei+;p+;if(maxprintf(getche();13#include#includevoidmain()int

温馨提示

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

评论

0/150

提交评论