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

下载本文档

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

文档简介

安 徽 技 术 师 范 学 院C语言程序设计习题集计算机科学与技术教研室编二三年五月习题一一、单项选择题二进制语言是属于 A 面向机器语言 面向过程语言 面向问题语言 面向汇编语言下列语言中不属于面向问题的语言是_高级语言 低级语言 C语言 ALGOL语言下列字符中属于键盘符号的是_ n t b下列不正确的转义字符是_ 074 0不是C语言提供的合法关键字是_switch cher case default正确的标识符是_?a a=2 a.3 a_3下列说法中错误的是_主函数可以分为两个部分:主函数说明部分和主函数体主函数可以调用任何非主函数的其它函数任何非主函数可以调用其它任何非主函数程序可以从任何非主函数开始执行二、填充题汇编语言属于面向_语言,高级语言属于面向_语言。用高级语言编写的程序称为_程序,它可以通过_程序翻译一句执行一句的方式执行,也可以通过_程序一次翻译产生程序,然后执行。转义字符是由_符号开始的单个字符或若干个字符组成的。4.C程序是由函数构成的。其中有并且只能有_个主函数。C语言程序的执行总是由_函数开始,并且在_函数中结束。C语言程序的注释可以出现在程序中的任何地方,它总是以_符号作为开始标记,以_符号作为结束标记。习题二一、单项选择题下列数据中属于“字符串常量”的是_ABC “ABC” abc a在PC机中,n在内存占用的字节数是_1 2 3 4字符串“ABC”在内存占用的字节数是_3 4 6 8在C语言中,合法的长整型常数是_0L 4962710 0.054838743 2.1869e10char型常量在内存中存放的是_ASCII代码值 BCD代码值 内码值 十进制代码值设m,n,a,b,c,d均为0,执行(m=a= =b)|(n=c= =d)后,m,n的值是_0,0 0,1 1,0 1,1设a为5,执行下列语句后,b的值不为2的是_b=a/2 b=6- (- - a) b=a%2 b=a3? 2:2执行语句“x=( a=3,b=a-)后,x,a,b的值依次为_3,3,2 3,2,2 3,2,3 2,3,2设整型变量m,n,a,b,c,d均为1,执行“(m=ab)&(n=ab)后m,n的值是_0,0 0,1 1,0 1,1 设有语句int a=3 ;则执行了语句a+=a-=a*a;后,变量a的值是_3 0 9 -12在以下一组运算符中,优先级最高的运算符是_= = % &设整型变量i的值为3,则计算表达式i-i后表达式的值为_0 1 2 表达式出错设整型变量a,b,c均为2,表达式a+b+c+的结果是_6 9 8 表达式出错若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是_1 2 2.0 2.5设a=1,b=2,c=3,d=4,则表达式:ab?a:cd?a:d的结果是_4 3 2 1设a为整型变量,不能正确表达数学关系:10a15的C语言表达式是_10a10&a15 !(a=15 )下列表达式中符合C语言语法的赋值表达式是_a=7+b+c=a+7 a=7+b+=a+7 a=(7+b,b+,a+7) a=7+b,c=a+7若有以下定义:char a、int b、float c、double d,则表达式a*b+d-c值的类型为_float int char double表达式“10!=9”的值是_true 非零值 0 1用十进制数表示表达式“12|012”的运算结果是_1 0 14 1221.设字符型变量a=3,b=6,计算表达式c=(ab)2后c的二进制值是_00011100 00000111 00000001 0001010022.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式中值为0的是_a&b a=b a|b+c&b-c !(a=A&ch3;”后,k的值是_06 0177776 066 0177766二、填空题在内存中要存贮”A”要占用_字节,存贮A要占用_个字节。C 语言中的逻辑值“真”是用_表示的,逻辑值”假”是用_表示的,逻辑表达式值为“真”用_表示的,逻辑表达式值为”假”是用_表示的。符号常量的定义方法是_ _。说明变量时,若省略存贮类型符,系统默认为_存贮类别,该存贮类别的类型符为_。无符号基本整型的数据类型符为_,双精度实型数据类型为_,字符型数据类型符为_。定义变量的完整语句格式是_。设有下列运算符:b的值为_,abc的值是_。若已知a=10,b=20,则表达式!az)?x+2:x-2,3,2”后x=_。能表述”20X30或X0) y=1; else y=0;下列语句中,错误的是_while (x=y) 5; do x+ while (x=10);while (0); do 2;while (a=b);循环语句 for(x=0,y=0;(y!=123)| (x4);x+);的循环执行_无限次 不确定次数 4次 3次若 i、j已定义为int类型,则以下程序段中内循环体的执行次数是_ for (i=5;i;i-) for (j=0;j4;j+)20 24 25 30假定a和b为int型变量,则执行以下语句后b的值为_a =1;b=10do b-=a;a+;while (b-0);9 -2 -1 8设x和y均为int型变量,则执行下面的循环后,y的值为_for(y=1,x=1;y=10) break; if(x%2=1) x+=5;continue; x-=3;2 4 6 8在C语言中,下列说法中正确的是_不能使用”do语句while(条件)”的循环“do语句while(条件)”的循环必须使用”break”语句退出循环“do语句while(条件)”的循环中,当条件为非0时将结束循环“do语句while(条件)”的循环中,当条件为0时将结束循环若有以下程序段,w和k都是整型变量,则不能与该程序段等价的循环语句是_ for(w=k;w!=0;w-) printf(“*”);w=k; w=k;LB:if(w=0) goto LE; while (w-!=0) printf(“*”); w+; w-; w=k; printf(“*”); do w-;prinft(“*”); goto LB; while (w!=0);LE: for (w=k;w;-w) prinft(“*”);二、填空题结构化程序设计规定的三种基本结构是_结构、选择结构和_结构。若有定义语句“int a=25,b=14,c=19;”,以下语句的执行结果是_。if (a+=25&b-=2&c+) printf(“*a =%d,b=%d,c=%dn”,a,b,c);else printf(“#a =%d,b=%d,c=%dn”,a,b,c);以下两条if语句可合并成一条if语句为_ if (ab) printf(“* y=%dn”,y); else prinft(“#x=%dn”,x);设 i,j,k均为int型变量,则执行完下面的for循环后,k的值为_for(i=0,j=10;i=j;i+,j-) k=i+j;下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0,请为程序填空。main() int i,x,y=1; scanf(“%d”,&x); for (i=2;i=x/2;i+) if_y=0;break; prinft(“%dn”,y);三、程序分析题阅读程序,写出运行结果。 main() int a=10,b=4,c=3; if (ab) a=bif(ac) a=c; printf(“%d,%d,%d”,a,b,c);阅读下列程序,写出程序的输出结果。main() int x=100,a=10,b=20,ok1=5,ok2=0; if (a0;y-) if (y%3=0) printf(“%d”,-y);continue;四、程序设计题编一个程序,输入华氏温度(F),按下列公式计算并输出对应的摄氏温度(C):C=5(F-32)/9编一个程序,输入一个整数,输出其符号(若0,输出1;若0,输出-1)。编一个程序,输入x的值,按下列公式计算并输出y值:编一个程序,输入三个单精度数,输出其中最小数。编一个程序,求出所有各位数字的立方和等于1099的3位整数。编一个程序,输入10个整数,统计并输出其中正数、负数和零的个数。编程序按下列公式计算e的值(精度为1e-6);编程序按下列公式计算y的值(精度为1e-6);编一个程序显示ASCII代码0x200x6f的十进制数值及其对应字符。用三种循环语句分别编写程序显示1100的平方值。习题四一、单项选择题若有以下说明,则数值为4的表达式是_ int a12=1,2,3,4,5,6,7,8,9,10,11,12; char c=a,d,g;ag-c a4 ad-c ad-c设有定义:char s12=“string”;,则printf(“%dn,”,strlen(s);的输出是_6 7 11 12下列语句中,正确的是_char a3 =abc,1; char a 3=abc,1;char a3 =a,”1”; char a 3=“a”, “1”;合法的数组定义是_int a =“string”; int a5=0,1,2,3,4,5;char a=“string”; char a = 0,1,2,3,4,5;语句”printf(“%dn”,strlen(“atsno121”);”的输出结果是_11 10 9 8函数调用”strcat(strcpy(str1,str2),str3)”的功能是_将字符串str1复制到字符串str2中后再连接到字符串str3之后将字符串str1连接到字符串str2之后再复制到字符串str3之后将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中设有如下定义,则正确的叙述为_char x =“abcdefg”;char y =a,b,c,d,e,f,g;数组x和数组y等价 数组x和数组y的长度相同数组x的长度大于数组y的长度 数组x的长度小于数组y的长度二、填充题执行”static int b5,a 3=1,2,3,4,5,6”后,b4=_,a12=_。设有定义语句”static int a34=1,2,3”,则a11值为_,a21的值为_。若在程序中用到”putchar()”函数时,应在程序开头写上包含命令_,若在程序中用到”strlen()函数时,应在程序开头写上包含命令_。下面程序的功能是输出数组S中最大元素的下标,请填空。main()int k,p; int s =1,-9,7,2,-10,3 for (p=0,k=p;psk )_ printf(“%d n”,k);下面程序的功能是将一个字符串str的内容颠倒过来,请填空#include “string.h”main()int i,j,_; char str =“1234567”; for (i=0,j=strlen(str)_;i=0;-i) d=ci;printf(“%c”,b_);三、程序分析题阅读程序,写出运行结果:main()static int a 3=9,7,5,3,1,2,4,6,8; int i,j,s1=0,s2=0; for (i=0;i3;i+)for (j=0;j3;j+) if (i=j) s1=s1+aij; if (i+j=2) s2=s2+aij; printf (“%dn%dn”,s1,s2);说明下列程序的功能main() int i,j; float a33,b33,x; for (i=0;i3;i+) for (j=0;j3;j+) scanf(“%f ”,&x); aij=x; for (i=0,i3;i+) for (j=0;j3;j+) bji=aij; for (i=0;i3;i+) printf(“n”); for (j=0;j3;j+) printf(“%f ”,bij); 写出下列程序的运行结果main() static char a =*,*,*,*,*; int i,j,k; for (i=0;i5;i+) printf(“n”); for (j=0;ji;j+) printf(“%c”, ); for (k=0;k5;k+) printf (“%c”,ak); 说明下列程序的功能main() int i,j; float a33,b33,c33,x; for (i=0;i3;i+) for (j=0;j3;j+) scanf(“%f”,&x;aij=x;) for (i=0;i3;i+) for (j=0;j3;j+) scanf(“%f”,&x;bij=x;) for (i=0;i3;i+) for (j=0;j3;j+) cij=aij+bij; for (i=0;i3;i+) printf(“n”); for (j=0;j3;j+) printf(“%f ”,cij); 四、程序设计题编程序。输入单精度型一维数组a10,计算并输出a数组中所有元素的平均值。编程序。输入10个整数存入一维数组,再按逆序重新存放后再输出。编程序。输入两个字符串(40个字符),连接后再输出(不准用系统函数)。编程序 按下列公式计算s的值(其中x1、x2、xn由键盘输入):(其中x0是x1、x2、xn的平均值)输入一个35的整数矩阵,输出其中最大值、最小值和它们的下标。输入一个字符串,将其中的所有大写字母改为小写字母,而所有小写字母全部改为大写字母,然后输出。编一个程序,输入一个字符串,将其中所有的大写英文字母+3,小写英文字母-3。然后再输出加密后的字符串。编一个程序,输入一个短整型数据,输出每位数字,期间用逗号分隔。例如输入整数为2345,则输出应为2,3,4,5。编一个程序,将按第7题中加密的字符串(从键盘输入)解密后输出。习题五一、单项选择题设有定义“int a=3,b,*P=&a”,则下列语句中使b不为3的语句是_b=*&a; b=*p; b=a; b=*a;设指针x指向的整型变量值为25,则printf(“%dn”,+ *x);的输出是_23 24 25 26若有说明:int i,j=7,*p=&i;,则与i=j;等价的语句是_i=*P; *P=*&j; i=&j; i=*p;若有说明语句“int a10, *P=a;”,对数组元素的正确引用是_ap pa *(p+2) p+2下面各语句行中,能正确进行赋字符串操作的语句是_char s5=“ABCDE”; char s5=A,B,C,D,E;char *s;s=”ABCDE”; char *s;scanf(“%s”,&s);若有以下定义,则不能表示a数组元素的表达式是_ int a10=1,2,3,4,5,6,7,8,9,10,*p=a;*p a10 *a ap-a若有以下的定义,则值为3的表达式是_int a =1,2,3,4,5,6,7,8,9,10,*p=a;p+=2,*(p+) P+=2,*+p P+=3,*p+ P+=2,+*p执行语句“char a10=“abcd”,*p=a”后,*(P+4)的值是_“abcd” d 0 不能确定设有定义语句“int (*ptr)10;”,其中的ptr是_10个指向整型变量的指针指向10个整型变量的函数指针一个指向具有10个元素的一维数组的指针具有10个指针元素的一维数组若有以下定义,则数值为4的表达式是_int w34=0,1,2,4,5,8,(*p)4=w;*w1+1 p+ ,*(P+1) w22 p11若有下面的程序片段,则对数组元素的错误引用是_ int a12=0,*P3,*pp,i; for (i=0;i3;i+) pi=&ai*4;pp=p;pp01 a10 p31 *(*(p+2)+2)若有如下定义和语句,则输出结果是_int *pp,*p,a=10,b=20;pp=&p; p=&a; p=&b; printf (“%d,%dn”,*p,*pp);10,20 10,10 20,10 20,20若有以下定义和语句,则对w数组元素的非法引用是_int w23,(*pw)3;pw=w;*(w0+2) *pw2 pw00 *(pw1+2)二、填空题“*”称为_取目标值_运算符,“&”称为_取地址_运算符。若两个指针变量指向同一个数组的不同元素,可以进行减法运算和_乘法_运算。设int a10,*p=a;则对a3的引用可以是p _ 和*(p_ )。若d是已定义的双精度变量,再定义一个指向d的指针变量p的语句是_。&后跟变量名,表示该变量的_,*后跟指针变量名,表示该指针变量_,&后跟指针变量名,表示该指针变量的_。设有char *a=”ABCD”,则prinft(“%s”,a)的输出是_;而printf(%c”,*a)的输出是_。设有以下定义和语句,则*(*(p+2)+1)的值为_。int a32=10,20,30,40,50,60,(*p)2;P=a;以下程序的功能是从键盘上输入若干个字符(以回车键作为结束)组成一个字符串存入一个字符数组,然后输出该字符数组中的字符串。请填空。# include “ctype.h”# include “stdio.h”main() char str81, *sptr;int i;for (i=0;i80;i+) stri=getchar( ); if (stri=n) break; stri=_;sptr=str;while (*sptr) putchar (*sptr_ ); 三、程序分析题阅读下列程序,写出程序的输出结果。main() char *a6=“AB”,”CD”, “EF”, “GH”,“IJ” “KL”,; int i;for (i=0;i4; i+) printf(“%s”,ai); printf(“n”);阅读程序,写出程序的主要功能。main() int i; a10, *p=&a9; for (i=0; i=a; p-) printf(“%dn”,*p);阅读下列程序,写出程序运行的输出结果。char s =”ABCD”;main() char *p;for (p=s;ps+4;P+) printf(“%sn”,p);设有下列程序,试写出运行的结果。main() int i,b,c,a =1,10,-3,-21,7,13,*p_b,*p_c; b=c=1;P_b=p_c=a; for (i=0;i6;i+) if (b*(a+i) c=*(a+i); p_c=&ai; i=*a; *a=*p_b; *p_b=i;i=*(a+5);*(a+5)=*p_c; *p_c=i;printf(“%d,%d,%d,%d,%d,%dn”,a0,a1,a2,a3,a4,a5);四、程序设计题(全部题目均要求用指针方法实现)输入3个整数,按从大到小的次序输出。编一个程序,输入15个整数存入一维数组,再按逆序重新存放后再输出。输入一个字符串,按相反次序输出其中的所有字符。输入一个一维实型数组,输出其中的最大值、最小值和平均值。输入一个36的二维整型数组,输出其中最大值、最小值及其所在的行列下标。输入3个字符串,输出其中最大的字符串。输入2个字符串,将其连接后输出。比较2个字符串是否相等。习题六一、单项选择题函数调用语句“f(e1,e3),(e3,e4,e5);”中参数的个数是_ 2 4 5 C语言中函数的隐含存储类型是_auto static exterm 无存储类别以下对C语言函数的有关描述中,正确的是_在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参C函数既可以嵌套定义又可以递归调用函数必须有返回值,否则不能使用函数C程序中有调用关系的所有函数必须放在同一个源程序文件中函数的功能是交换x和y中的值,且通过正确调用返回交换结果。不能正确执行此功能的函数是_funa(int *x,int *y) funb (int x,int y)int *p; int t; *p=*x; *x=*p;*y=*p; t=x;x=y;y=t; func (int *x,int *y) fund (int *x,int *y)int p; *x=*x+*y;*y=*x-*y;*x=*x-*y; p=*x; *x=*y; *y=p; 要求函数的功能是在一维数组a中查找x值;若找到则返回所在的下标值,否则返回0;数放在a1到an中。不能正确执行此功能的函数是_funa(int *a,int n,int x) funb (int *a,int n,int x) *a=x; int k; while (an!=x)n-; for (k=1;k=n;k+) return(n) if (ak=x) return(k); return(0); func(int a ,int n,int x) fund (int a ,int n,int x) int *k; int k=0;a0=x;k=a+n; do k+;while (*k!=x) k-; while (kn+1)&(ak!=x);return (k-n); if (kn+1)&(ak=x) return(k); else return(0); 以下程序的输出结果是_ # include sub1(char a,char b) char c; c=a; a=b; b=c; sub2(char *a,char b) char c;c=*a ;*a=b;b=c; sub3(char *a,char b) char c;c=*a;*a=*b;*b=c; main() char a,b; a=A;b=B;sub3(&a,&b);p

温馨提示

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

评论

0/150

提交评论