




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计配套习题第一章c语言概述一、填空题1用turbo c执行c程序时,需要编译源程序,应该选择_.2用turbo c执行c程序时,需要显示屏幕时,应该选择_.3c语言属于计算机语言里的_语言。二、请画出c程序的上机步骤第二章 算法一、填空题1为了表示一个算法,常用的表示方法有_.2算法应该具有的特点有_、_、_、_、_。3三种基本结构是_、_、_.二、用伪代码表示13599三、什么叫做结构化程序设计,主要内容是什么?第三章 数据类型、运算符与表达式一、选择题1、数据的基本类型包括()A)整型B)字符型C)实型D)枚举型2、整型常量的表示方法有()A)十进制B)八进制C)十六进制二、填空题1、转义字符”r”表示_。2、i=4,经过运算i=i+后,i的值是多少_.3、10的原码是_,补码是_.三、写出程序运行的结果main()int I,j,m,n;i=6;j=9;m=12;n=5;m=+i;n=j+;printf(“%d,%d,%d,%d”,i,j,m,n);第四章 顺序程序设计一、选择题1若int a, b; scanf(%d%d, &a, &b); 不可以用( A )作为输入的分隔符。A), B)空格 C)回车 D)TAB键2阅读以下程序,当输入数据的形式是:25,13,10,正确的输出结果是( D )。main()int x,y,z;scanf(%d%d%d,&x,&y,&z);printf(x+y+z=%d,x+y+z);A) x+y+z=48 B)x+y+z=35 C)x+z=35 D)不确定值3已知ch是字符型变量,下边正确的赋值语句是( B )A) ch= 123; B)ch=xff; C)ch=08; D) ch=;4设x,y均为float型变量,则以下不合法的赋值语句是( B )A)+x; B)y=(x%2)/10; C)x*=y+8; D)x=y=0;二、填空题1. 以下程序的输出结果是(a= +1124,a=1124 ,x=30.141500,x= 30.142)main()int a=1124;double x=30.1415;printf(a=%+6d,a=%-6d,x=%f,x=%7.3f,a,a,x,x);2以下程序的输出结果是( 36.750000 )main()int x=10;float y=26.75;printf(%f,x+y);3若x为int型变量,则执行以下语句后x的值是( -14 )x=7;x+=x-=x+x;三、编程题1编程序,用getchar 函数读入两个字符c1,c2,然后分别用putchar函数和printf函数输出这两个字符。并思考以下问题:(1)变量c1,c2应定义为字符型或整型?还是二者皆可?(2)要求输出c1和c2的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整型变量和字符型变量是否在任何情况下都可以互相代替?2设圆半径r=2,圆柱高h=3,求圆周长,圆柱底面积,圆柱体积。用scanf 输入数据,用printf输出计算结果,输出时要求有文字说明,取小数点后两位数字。第五章 选择结构程序设计一、填空题1有 int x=3, y=4, z=5; 则A)表达式 !(xy)+(y!=z) | (x+y) & (y-z) 的值为( 1 )。B)表达式 x+yz&y=z 的值为( 0 )C)表达式 x|y+z&y-z 的值为( 1 )D)表达式 !(xy)&!z|1 的值为( 1 )E)表达式 !(x=y)&!(y=z)|0的值为( 0 )F)表达式 !(x+y)+z-1&y+z/2的值为( 1 )2如下程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和,请在( )内填入正确内容。main() int a,b, ( x ),y;scanf(%d %d,&a,&b);x=a*a+b*b;if ( x100 ) y=( x/100 ); printf(n a2+b2 100, %d,y);else printf(n a2+b23.5?(c=2,c+2):3;printf(%dn,a);5下面程序的执行结果是( 14,4 )main()int a=10,b=0;if(a=12) a=a+1;b=b+1;elsea=a+4;b=b+4;printf(%d,%d,a,b);二、编程题1根据以下函数关系,对输入的每个x值,计算出相应的Y值。X0 I= -10x=40 I=4I= -1 y=0I=0 y=xI=1 y=1I=2 y=30要求用两种方法实现1)用if-else实现(自己编程)。2)用switch语句实现(填空完成程序)main() int x,i;float y;scanf(%d,&x);if (x=40) i=4;else i=x/10;switch(i)case -1: y=0; break;case 0: (y=x ); break;case 1: y=10; break;case 2: y=30; (break );default: printf(error inputn);printf( y=%f,y);2编程实现以下的功能:输入两个运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可为+,-,*,/。3有三个整数a,b,c,由键盘输入,输出其中最大的数。4(选作题)给一个不多于3位的正整数,要求:1)求出它是几位数;2)分别打印出每一位数字。第六章 循环控制上机调试以下程序,并写出以下程序的输出结果。1当输入为 5 时,分析下列程序的运行结果: main() int i,n; double x,s=0; scanf(%d,&n); for(i=1,x=1;i=n;i+,x+=1) s+=1/x; printf(s=%.2f n,s); 2写出下列程序的运行结果: main() int k,num,sum; sum=num=0; for(k=1;k+n3) i+; for( ;n1n2;+n2) j+; do k+; while (n1n4+); printf(i=%d, j=%d,k=%dn,i,j,k); 4编程计算 1*2*3+3*4*5+99*100*101 的值。 解题指导:可用一个循环变量 i 来计数,增量为 2 。先令 i=1 ,计算 i*(i+1)*(i+2) ,然后将 i 加 2 ,再计算 i*(i+1)*(i+2) ,依次循环到 i=99 。 5 编写一个程序,输入两个正整数,求它们的最大公约数和最小公倍数。 解题指导:可用辗转相除法求最大公约数。 6 用一元五角人民币兑换 1 分、 2 分和 5 分的硬币(每一种都要有)共 100 枚,问共有几种兑换方案,每种方案各换多少枚?编程求解。 解题指导:因为每一种硬币都要有,所以 5 分的硬币最多有 28 枚, 2 分的硬币最多有 73 枚,可用两层循环编程求解。第七章 数组一、选择题1若有说明:int a10;则对数组元素的正确引用是(A )A) a10;B)a3.5C)a(5)D)a10-102若有说明语句:int 34;则对a数组元素的正确引用是(C )A)a24B)a1,3C)a1+10D)a(2)(1)3判断字符串a和b是否相等,应当使用(D ) A) if (a=b)B)if (a=b)C)if (strcpy(a,b)D)if (strcmp(a,b)二、填空题1若有说明:int a3=1,2,3,4,5,6,7; 则a数组第一维的大小是(3 )2下面程序的运行结果是(LBLMNP) # include #include main()char a80=AB, b80=LMNP;int i=0;strcat(a,b);while (ai+!=0) bi=ai;puts(b);3下面程序的运行结果是(1 1 2 3 5 8 13 21 34 55)main() int i, f10;f0=1; f1=1;for (i=2; i10; i+)fi=fi-2+fi-1;for (i=0; i10; i+) if (i%4=0) printf(n);printf(%3d, fi);三、编程题1用选择法对10个整数按升序排序#define N 10main() int i,j,min,temp;static int aN=5,4,3,2,1,9,8,7,6,0; printf(nThe array is:n); /* 输出数组元素 */for (i=0;iN;i+)printf(%5d,ai);for (i=0;iN-1;i+) /* 排序操作 */ min = (0 ); for (j=i+1; jaj) min =j;( temp=amin; amin=aj; aj=temp);/* 数据交换 */ printf(nThe sorted numbers: n); /* 输出排序结果 */for (i=0;iN;i+) printf(%5d,ai);printf(n);2有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则打印出“无此数”。 读懂下面的程序,并填空。变量说明:top, bott:查找区间两端点的下标;loca:查找成功与否的开关变量。#include #define N 15main() int i, j, number,top,bott,min,loca,aN,flag;char c;printf(Input 15 numbers(aiai-1)n); /* 由大到小 */scanf(%d, &a0); /* 输入第1个数据 */i=1;while (i=ai-1) /* 是否大于前一个数 */i+;else printf(Repeat input number ai);printf(must = %dn, ai-1);printf(Input the finded number:); /* 输入需要查找的数 */scanf(%d, &number);loca=0;top=0;bott=N-1;if (numberaN-1) loca=-1; /* 不在范围内 */while (loca=0) & (top=bott) min=(top+ bott)/2 ); if (number=amin) loca=min;printf(The serial number is %d.n,loca+1);else if (numberamin)bott=min-1; else top=min+1;if (loca=0 | loca=-1)printf(%d isnt in tabeln, number);3下面程序的功能是将字符串s中所有的字符c删除。请填空。#include main() char s80;int i,j;gets(s);for (i=j=0; si!=0; i+)if (si !=c)sj=si; (j+ ); sj=0; puts(s);4编程打印以下图案:*参考答案:main() static char a5=*,*, *,*, *;int i,j,k;char space= ;for(i=0;i5;i+) printf(n);for(j=1;j=3*i;j+)printf(%1c,space);for(k=0;ks2) B)if(strcmp(s1,s2)C) if(strcmp(s2,s1)0) D) if(strcmp(s1,s2)0)5下述对C语言字符数组的描述中错误的是(C )A) 字符数组可以存放字符串B)字符数组的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比(二)填空题1编写一个程序,将字符数组s2中的全部字符拷贝到字符数组 s1中,不用strcpy函数。拷贝时,0也要拷贝过去。0后面的字符不拷贝。#include stdio.hmain() char from80,to80;int i, len;printf(nplease input string:);scanf(%s,from);(len=strlen(from); /* 得到字符串长度 */for (i=0;i=len; i+)(toi+=fromi+); /* 逐个字符复制 */printf( New string is :%sn,to);2以下是个评分统计程序,共有8个评委打分,统计时,去掉一个最高分和一个最低分,其余6个分数的平均分即是最后得分,程序最后应显示这个得分,显示精度为1位整数,2位小数,程序如下,请将程序补充完整。(99年北京水平试题)main()float x8=9.2,9.5,9.8,7.4,5.,9.1,9,0,float (aver),max,min;int i;for (i=0 ); i8; i+)aver+=xi;max=x0;min=max;for (i=1; i8; i+) if (max xi) min=xi;aver= (aver-min-max)/6);printf(Average (%f )n,aver);3程序读入20个整数,统计并输出非负数个数以及非负数的和。#include stdio.hmain()int i,a20,s,count;s=count=0;for (i=0;i20; i+)scanf(%d, &ai);if (ai0)( continue );s+=ai;count+;printf(s=%d count=%dn,s,count);第八章 函数一、选择题1C语言中,若对函数类型无说明,则函数的默认类型是( A )A)整型 B)float C)double D)指针类型2C语言规定,在一个源程序中,main函数的位置( C )A)必须在最开始 B)必须在系统调用的库函数的后面 C) 可以任意 D)必须在最后3若用数组名作为函数调用的实参,传递给形参的是( A )。A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数4凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( A )。A) 自动(auto) B) 静态(static) C) 外部(extern) D) 寄存器(register)5以下不正确的说法是( D )。A)在不同函数中可以使用相同名字的变量。B)形式参数是局部变量。C)在函数内定义的变量只在本函数范围内有效。D)在函数内的复合语句中定义的变量在本函数范围内有效。二、填空题1下面程序的执行结果是( 111 )main() increment( );increment( );increment( );increment( ) int x=0;x+=1;printf(%d,x);2下面程序的执行结果是(15,30 )#includemain()static int y2=15,25;int z=20;z=shift(y0);printf(%d,%dn,y0,z);shift(a)int a;a*=2;return(a);3以下程序的运行结果是( 2,3,4,5,6,3,4,5,6,7, 3,4,5,6,7, )。main()static int a5=2,3,4,5,6;int i;for(i=0;i5;i+)printf(%d,ai);printf(n);prt(a);printf(n);for(i=0;i5;i+)printf(%d,ai);printf(n);prt(m)int m5;int j;for(j=0;jb?a:b)+1main()int j=6,k=8,f;printf(%dn,MAX(j,k):2下面程序的运行结果是( 9.0 )。#define A 4#define B(x) A*x/2main()float c,a=4.5;c=B(a);printf(%5.1fn,c);3设有以下程序,为使之正确运行,请在( )中填入应包含的命令行。(#include )main()int x=2,y=3;printf(%dn,pow(x,y);4下面程序的运行结果是( c=0 )。main()int a=10,b=20,c;c=a/b; #ifdef DEBUGprintf(a=%d,b=%d,a,b);#endifprintf(c=%dn,c);5下面程序的运行结果是( a=14,b=15,c=0 )。#define DEBUGmain()int a=14,b=15,c;c=a/b;#ifdef DEBUGprintf(a=%d,b=%d,a,b);#endifprintf(c=%dn,c);第十章 指针第一部分 指针及其运算作业1:main()int *p1,*p2, ( *p ); /* 指针变量说明语句 */int a, b;printf(n Please input a and b:);scanf(%d%d,&a,&b);p1=&a;p2=&b;if (ab) swap(p1,p2); /* 函数调用 */if (ac) swap(p1,p3); /* 函数调用 */if (bc) swap(p2,p3); /* 函数调用 */printf(nThe sorted numbers: %d,%d,%dn,a,b,c);swap(int *p1, int *p2) (int p );p=*p1; *p1=*p2; *p2=p;程序运行结果:Input 3 numbers: 100 200 150(The sorted numbers: 100 150 200 )作业3:#define N 5main() int *p,i,aN;p=a;printf(nInput 5 numbers:);for (; pa+N; p+)scanf(%d, ( p );(p=a); printf(nOutput array:);for (; pa+N; p+)printf(%d ,( *p );程序运行结果:Input 5 numbers: 1 3 5 7 9Output array:( 1 3 5 7 9 )作业4:main()int a6,x,i;printf(nInput 5 numbers:);for (i=1; i0 ) printf(%5ds position is: %4dn,x,i);else printf(%5d Not been found!n,x);程序运行结果:Input 5 numbers: 1 3 5 7 9Input x: 3( 3s position is 2 )作业5:main() float average();static int score5=60,70,80,90,80, i;float aver;printf(Scores:);for (i=0; i5; i+)printf(%d , *(score+i);aver= (average(score) ;)printf(nAverage score: %6.2f,aver);float average(int *array)int i;float aver,sum=0;for (i=0;i max) max=*s;( s+ );printf(nThe max character is: %c, max); 程序运行结果:The max character is: ( u )作业3:#include #include main() char s81,*p1,*p2;int n;pirntf(nInput a string:);gets(s);n=strlen(s);p1=s;p2 = (s+n-1 );while (p1p2) if (*p1!=*p2) break;else p1+; (p2-); if (p1p2) printf(Non);else printf(Yesn); 程序运行结果:Input a string: level( Yes)再次运行程序:Input a string: 123453( No)作业4:main() char s180,s280;printf(nInput a string:);gets(s1);printf(nInput a string:);gets(s2);conj(s1,s2);puts(s1);conj(char *p1,char *p2)char *p=p1;while (*p1!=0) ( p1+ ; )while (*p2 !=0) *p1=( *p2); p1+;p2+;*p1=0;程序运行结果:Input a string: BeiInput a string: jing( Beijing )第三部分 指针与数组作业1:用指向数组元素的指针变量输出二维数组中aij元素的值。main() static int a34=1, 3, 5, 7,9, 11,13,15,17,19,21,23;int *p, i,j;p=a;printf(nInput i and j (i3,j4):);scanf(%d %d, &i,&j);printf(a%d%d=%dn,i,j,(*(p+i*4+j);程序运行结果:Input i and j (i3,j4): 2 3(a23=23 )作业2:main() static int a34=1,3,5,7,9,11,13,15,17,19,21,23;int (*p)4,i,j;p=a;scanf(%d, %d, &i,&j);printf(a%d,%d=%dn,i,j,*(*(p+i)+j );程序运行结果:Input i and j (i3,j4): 2 3(a23=23)作业3:main() int i;void average(); /* 函数说明 */static int score34=65,67,70,60,80,87,90,81,90,99,100,98;average(score,3);void average(p,n) /* n 为学生人数 */int (*p)4, n;int i;float sum=0, aver;for (i=0; in; i+)sum=sum + (*(*(p+i) );aver=(sum/n );printf(naverage=%5.2fn,aver);程序运行结果:average=( 78.5 )作业4:main()static char *name7=Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;int n;printf(nInput the number(0-6):);scanf(%d, &n);if (n=0) printf(nThe name is: %s, *(name+n); /*name(n); */elseprintf(nInput error);程序运行结果:Input the number(0-6): 1the day is (Monday )作业5:main() static char *name =Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;char (*p);int k;p=str;for (k=0; k1) ( +argv; )printf(nHello %s!, *argv);-argc;第四部分 指针与函数读懂并输入程序,完成填空后输出结果。作业1:写一个函数,将字符串中的小写字母转换成大写字母。在main函数中输入字符串,并输出结果。main() void convert(); /* 函数说明 */char str10;printf(nInput a string:);scanf(%s, str); (convert(str); )printf(nOutput the string:%s, str);void convert(char p10) /* 函数定义 */ int i=0;while (*(p+i) !=0) if (*(p+i)=a & *(p+i)=a & *(p+i)=z)*(p+i)=*(p+i)-32; /* 将小写字母转换为大写字母 */i+; 程序运行结果 Input a string: NbaOutput the string: ( NBA )作业3:static int score 4=60,70,80,90,56,89,67,88,34,78,90,66;int * search();/* 函数说明 */int * p;int i,m;printf(nenter the number of stuednt:);scanf (%d,&m);printf(nThe scores of No. %d are:n,m);p=search (score, m);for(i=0;i4;i+)printf(%dt,*(p+i);int * search(pointer,n)int (*pointer)4;/* 指向一维数组的指针 */int n;float *pt;(pt=*(pointer+n); return(pt);程序运行结果:enter the number of stuednt:1The scores of No. 1 are:(56 89 67 88)作业4:#include main() double (*function3)(); double x=1;int i;function0=sin;function1=cos;function2=tan;for (i=0; i3; i+)printf(func No: %d-%dn, i+1, execute(x, (functioni);execute (double x, (double(*func)() return (*func)(x);程序运行结果:func No: ( 0-0 )func No: ( 1-0 )func No: ( 2-1 )第十一章 结构体与共用体读懂并输入程序,完成填空后输出结果1建立学习成绩单结构,并建立一个同学王林(wanglin)的记录。#include main()struct grade /* 定义结构体类型 */int number;char name;int math;int english;struct (grade) wanglin; /* 说明结构体变量 */printf(Please input the number, name, math, english:n);scanf(%d,%d,%d,&(wanglin.number),& wanglin. name,(&wanglin. math)& wanglin.english);printf(wanglin grade is: %d/%d/%dn, wanglin. number, , wanglin.math, wanglin.english);程序执行过程与结果:Please input the number, name, math, english:26,A, 85,90wanglin grade is: 请再建立一个刘芳(liufang)的成绩记录, 比较一下。2结构体与函数main()struct /* 局部定义结构 */int a;char b;(variable);variable.a=1111;variable.a=A;fun(variable.a);printf( a=%dn, variable.a);printf( a=%dn, variable.b);fun
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电站二次监控课件
- 高考化学重庆题讲解课件
- 高级摄影基础知识培训班课件
- 1.4用一元二次方程解决问题 分层练习(含答案)数学苏科版九年级上册
- 音乐三年级下册 卖报歌 课件(内嵌音频)
- GLP-1R-agonist-32-生命科学试剂-MCE
- 5-Azacytosine-15N4-生命科学试剂-MCE
- 初级社工考试题及答案
- 英美拼写考试题及答案
- 电源电路基础知识培训课件
- GB/T 10079-2018活塞式单级制冷剂压缩机(组)
- (完整版)人教版八年级下册《道德与法治》期末测试卷及答案【新版】
- 维护新疆稳定 实现长治久安课件
- 北京大学人民医院-医疗知情同意书汇编
- 体育社会学(绪论)卢元镇第四版课件
- 档案管理员述职报告9篇
- 舞台灯光基础知识教学课件
- 牙体牙髓病最全课件
- 脑卒中的功能锻炼课件
- 护理质控简报
- JJG 700 -2016气相色谱仪检定规程-(高清现行)
评论
0/150
提交评论