C语言.docx
- 文档编号:27371061
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:36
- 大小:31.89KB
C语言.docx
《C语言.docx》由会员分享,可在线阅读,更多相关《C语言.docx(36页珍藏版)》请在冰豆网上搜索。
C语言
练习
1.下面的字符序列中哪些不是合法的变量名:
-abc
__aa
for
pp.288
tobe
IBM/PC
ms-c
#micro
m%ust
tihs
while
r24_s25
__a__b
a"bc
_345
2.假设整型变量a的值是1,b的值是2,c的值是3,在这种情况下分别执行下面各个语句,写出执行对应语句后整型变量u的值。
1)u=a?
b:
c;
2)u=(a=2)?
b+a:
c+a;
3.假设整型变量a的值是1,b的值是2,c的值是0,写出下面各个表达式的值。
1)a&&!
((b||c)&&!
a)
2)!
(a&&b)||c?
a||b:
a&&b&&c
3)!
(a+b 4.下面程序在执行时,哪些地方将发生类型转换? 程序打印的值是什么? intf(intn,floatm){ return(m+n)/4; } intmain(void){ floaty=3; printf("%d\n",f(y,y+1)); return0; } 5.写一个简单程序,它输出从1到10的整数。 。 C语言部分 一、语言基础单项选择题(每题2分,共30分) (一)C程序是由__和_____构成的。 1.A)主函数与子程序B)主函数与若干子函数 C)一个主函数与一个其它函数D)主程序与子程序 (二)以下选项中合法的常量是______D________。 2.A)‘Internet’B)E—3C)02xD)0xfeL (三)以下选项中合法的用户标识符是________C_________。 3.A)forB)3DmaxC)_123TestD)B.dat 4.A)d=8+a+f=d+8B)d=(a+8)++ C)d=(8+e,e++,d+8)D)d=8+e++=d+7 (五)设x,y,a,b,c为int型变量,且值均为0,在TurboC环境下执行 (x=a==b)||(y=c==b)后,x,y的值是______C________。 5.A)0,0B)0,1C)1,0D)1,1 (六)设有inti=011,j=10;则printf(“%d,%d\n”,++i,j--);的输出结果是__C___。 6.A)011,9B)012,9C)10,10D)10,9 (七)以下选项中,与k=i++完全等价的表达式是______A________。 7.A)k=i,i=i+1B)i=i+1,k=iC)k=i+1D)k+=i+1 (八)有以下程序段 intn=0,p; do{scanf(“%d”,&p);n++;} while(p! =123&&n<2); 则do—while循环的结束条件是____D________。 8.A)p的值不等于123并且n的值小于2 B)p的值等于123并且n的值大于等于2 C)p的值不等于123或者n的值小于2 D)p的值等于123或者n的值大于等于2 (九)若定义: intx=3,*p=&x,*q=p;则以下非法的赋值语句是_____C_______。 9.A)p=qB)*p=*qC)p=xD)x=*q (十)在执行charstr[10]=”TurboC\0”; strlen(strcpy(str,”china”));后结果是_______A_________。 10.A)5B)7C)6D)9 (十一)执行下列程序 #defineM(a,b)(a)>(b)? (a): (b) main() {inti=10,j=15;printf(“%d\n”,10*M(i,j));} 后输出的结果是_____A________。 11.A)10B)15C)100D)150 (十二)若有说明: inti,j=5,*p=&i,则与i=j;等价的语句是_____B_______。 12.A)i=*p;B)*p=*&j;C)i=&j;D)i=**p; (十三)设有如下定义,则对data中的a成员的正确引用是______B________。 structsk{inta;floatb;}data,*p=&data; 13.A)(*p).data.aB)(*p).aC)p->data.aD)p.data.a (十四)若有如下定义,则printf(“%d\n”,sizeof(them));的输出是_____D_____。 typedefunion{longx[2];inty[4];charz[8]; }MYTYPE; MYTYPEthem; 14.A)32B)24C)16D)8 (十五)若需要打开一个已经存在的非空文件"file"进行修改,正确的打开语句 是______B_______。 A)fp=fopen(“file”,”r”)B)fp=fopen(“file”,”r+”) C)fp=fopen(“file”,”w”)D)fp=fopen(“file”,”rb+”) 二、阅读下列程序,写出运行结果(每题4分,共20分) [程序1]#include main() {charsl[10],s2[10],s3[10],s4[10];运行结果: scanf(“%s%s”,s1,s2);aaaa gets(s3);gets(s4);l234 puts(s1);puts(s2); puts(s3);puts(s4);bbbb5678 } 程序运行时输入数据为: aaaal234↙ bbbb5678↙ [程序2]main() {inta=13,b=21,m=0;运行结果: 3 switch(a%3) {case0: m++;break; case1: m++; switch(b%2) {default: m++; case0: m++;break;} } printf(“%d\n”,m); } [程序3]#include 54 main() {inta[3][4]={0,2,4,6,8,10,12,14,16,18,20,22}; int(*p)[4]=a,i,j,k=0; for(i=0;i<3;i++) for(j=0;j<2;j++) k=k+*(*(p+i)+j); printf(“%d\n”,k); } [程序4]#include s(intn)运行结果: 22 {staticinti=1;32 intj=1;42 if(n>0) {++i;j++; printf(“%d%d\n”,i,j); s(n-1); } } main() {intk=3; s(k);} [程序5]#include data=1468 main() {charc; inti,data=0; for(i=0;i<4;i++) {c=getchar(); if(c<’0’||c>’9’) break; data=data*lO+c-‘0’;/*字符转成数字*/ } printf(“data=%d\n”,data); } 程序运行时输入数据为: 1468↙ 三、阅读分析下列程序,在______线处填上适当内容,使程序(或函数)完整。 (每空2分,共18分) 1.有以下程序,其功能是将从键盘输入的小写字母转换成大写字母输出, 当输入为“#”时,结束转换。 main() {charch; scanf(“%c”,&ch); while(ch! =’#’) {if(ch>=’a’&&ch<=’z’) printf(“%c”,ch-32); scanf(“%c”,&ch); } } 2.求Fibonacci数列前20项的值并输出。 Fibonacci数列: 1,1,2,3,5,8,13, ……。 可以用如下递归公式求它的第n项: 1n=1,n=2 Fn= Fn-1+Fn-2n>2 main() {staticintn,f[20]={1,1}; for(n=2;n<20;n++) f[n]=f[n-1]+f[n-2]; for(n=0;n<20;n++) {if(n%5==0)printf(“\n”); printf(“%lOd”,f[n]); } } 3.输入10个数,从小到大排序。 main() {inti,j,p,q,s,a[10]; printf(“\ninputl0unmbers: \n”); for(i=0;i<10;i++)scanf(“%d”,&a[i]); for(i=0;i<9;i++) {p=i;q=a[i]; for(j=i+1;j<10;j++) if(q>a[j]){p=j;q=a[j];} if(i! =p) {s=a[i];a[i]=a[p];a[p]=s;} printf(“\n%d”,a[i]); } } 4.下列程序的功能是输入一个字符串存人字符数组a中,然后将其中的所有字符’\’删除后再存入字符数组b,最后将字符数组b中的字符串输出。 #include #include main() {chara[81],b[81],*p1=a,*p2=b; gets(p1); while(*p1! =’\0’) if(*p1==’\\’) p1++; else *p2++=*p1++; puts(b); } 四、编写程序题(共22分) 1.求两个整数的最大公约数和最小公倍数。 (6分) main() {inta,m,n,t; scanf("%d%d",&m,&n); a=m*n; while((t=m%n)! =0) {m=n;n=t;} printf("greatestcommondivisor=%d\n",n); printf("leastcommonmultiple=%d\n",a/n);} 2.编写一程序,输出如下图形。 (8分) ***** ***** ***** ***** ***** main() {intm,n; for(n=1;n<=5;n++) {for(m=1;m<=n-m;m++)printf(“”); printf(“*****\n”);} } 3.按下述递归定义编写一个计算幂级数的递归函数。 (8分) 1n=0 xn= x*xn-1n>0 longfun(intx,intn) {longinty; if(n==0)y=1; elsey=x*fun(x,n-1); returny;} main() {intx,n; scanf(“%d%d”,&x,&n); printf(“%ld”,fun(x,n));} 基础知识和C语言程序设计 一、选择题(每题1分,共50分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。 (1)在计算机中,一个字节所包含二进制位的个数是 A)2B)4C)8D)16 (2)在多媒体计算机中,CD-ROM属于 A)存储媒体B)传输媒体C)表现媒体D)表示媒体 (3)在Windows系统中,不同文档之间互相复制信息需要借助于 A)磁盘缓冲区B)写字板C)剪贴板D)记事本 (4)十六进制数100转换为十进制数为 A)256B)512C)1024D)64 (5)能将高级语言编写的源程序转换为目标程序的软件是 A)汇编程序B)编辑程序C)解释程序D)编译程序 (6)在Internet中,用于在计算机之间传输文件的协议是 A)TELNETB)BBSC)FTPD)WWW (7)在Windows环境下,资源管理器左窗口中的某文件夹左边标有“+”标记表示 A)该文件夹为空B)该文件夹中含有子文件夹 C)该文件夹中只包含有可执行文件D)该文件夹中包含系统文件 (8)在Windows环境下,下列叙述中正确的是 A)在“开始”菜单中可以增加项目,也可以删除项目 B)在“开始”菜单中不能增加项目,也不能删除项目 C)在“开始”菜单中可以增加项目,但不能删除项目 D)在“开始”菜单中不能增加项目,但可以删除项目 (9)从Windows环境进入DOS方式后,返回Windows环境的命令为 A)QUITB)WINC)EXITD)ESC (10)下列叙述中正确的是 A)计算机病毒只感染可执行文件B)计算机病毒只感染文本文件 C)计算机病毒只能通过软件复制的方式进行传播 D)计算机病毒可以通过读写磁盘或网络等方式进行传播 (11)以下叙述中正确的是 A)C程序中注释部分可以出现在程序中任意合适的地方 B)花括号“{”和“}”只能作为函数体的定界符 C)构成C程序的基本单位是函数,所有函数名都可以由用户命名 D)分号是C语句之间的分隔符,不是语句的一部分 (12)以下选项中可作为C语言合法整数的是 A)10110BB)0386C)0XffaD)x2a2 (13)以下不能定义为用户标识符的是 A)scanfB)VoidC)_3com_D)int (14)有以下程序 main() {inta;charc=10; floatf=100.0;doublex; a=f/=c*=(x=6.5); printf(”%d%d%3.1f%3.1f\n”,a,c,f,x); } 程序运行后的输出结果是 A)16516.5B)1651.56.5 C)1651.06.5D)2651.56.5 (15)以下选项中非法的表达式是 A)O<=x<100B)i=j==0C)(char)(65+3)D)x+l=x+l (16)有以下程序 main() {inta=l,b=2,m=0,n=O,k; k=(n=b>a)||(m=a printf(”%d,%d\n”,k,m); } 程序运行后的输出结果是 A)0,0B)0,1C)1,0D)1,1 (17)有定义语句: intx,y;,若要通过scanf(“%d,%d”,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是 A)1112<回车>B)11,12<回车>C)11,12<回车>D)11,<回车> 12<回车> (18)设有如下程序段: intx=2002,y=2003; printf("%d\n",(x,y)); 则以下叙述中正确的是 A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B)运行时产生出错信息C)输出值为2002D)输出值为2003 (19)设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是 A)x=x*100+0.5/100.0;B)x=(x*100+0.5)/100.0; C)x=(int)(x*100+0.5)/100.0;D)x=(x/100+0.5)*100.0; (20)有定义语句: inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言