c语言程序填空题(1)
C语言练习题填空题1
{ float x,y;
scanf("%f",&x);
if(【】)
y=-1.0;
else if((【】)&&(x!=1))
y=2.0/(x-1.0);
else if(【】)
y=3.0/x;
else
y=4.0;
printf("%f/n",y); }
19.
以下函数的功能是将一个字符串S的内容颠倒过来。
}
printf(“\nsum的结果为:%f ”,sum);
}
22.
表达式4>3 && 7<5-!0的值为_______。
23.
char *p[10];这条语句的含义是:_________________________。
24.
假定x=10,则表达式x<=10?20:30的值为___________。
sum+=s[i];
if((i+1)%5==0)
{
w[k]=sum/5;
【2】;
k++;
}
}
}
main()
{
float s[SIZE],w[SIZE/5],sum;
int i,k;
fav1(s);
fav2(s,w);
}
4.
若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为:_____________。
24.20
试卷指标统计数据
总题量
总分值
24
100
章节编码
题量
分值
章节说明
01
C语言程序设计期末复习题及答案(1)
5. n为整型,表达式n=1,n+2,n*5 的值是__5_______。
6. 已知:float x=8.53; 整形变量i=(int)x;则i=__8_____。
7. 已知:int x=5;语句y=x++*x++;执行完成后x=___7__,y=_25____。
int i, k, num;
gets(str1); gets(str2);
i=strlen(str1);
k=strlen(str2);
num=______? ____: ____;
printf("%d\n", num);
}
2. 下面程序是计算字符串中实际字符的个数,即实现和字符串处理函数strlen相同的功能,补充空白处的程序。
for (j=0;j<n-1-i;j++)
if (a[j]>a[j+1])
{c=a[j];a[j]=a[j+1];a[j+1]=c;}
}
2. 本题20分.总体程序完整性3分,结构体定义正确3分,结构体数组定义以及初始化正确6分,指针定义正确3分,输出判断正确3分,输出姓名地址2分。以下代码为参考代码,答案不唯一。
(B)在指针操作中,运算符“&”是取指针指向的对象的值。
(C)在指针操作中,运算符“*”的操作对象是一个地址。
(D)语句int *ip;定义了指针变量只能存放整型变量的地址。
14.判断字符串str1是否大于字符串str2,应当使用___d________。
(A)if (str1>str2)
C语言程序设计(第二版)习题参考答案1
C语言法式设计习题参考谜底之迟辟智美创作习题 1一、判断题1.在计算机中,小数点和正负号都有专用部件来保管和暗示.2.二进制是由0和1两个数字组成的进制方式.3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系.4.在整数的二进制暗示方法中,0的原码、反码都有两种形式.5.有符号数有三种暗示法:原码、反码和补码.6.经常使用字符的ASCII码值从小到年夜的排列规律是:空格、阿拉伯数字、年夜写英文字母、小写英文字母.解:1.F2.T 3.T 4.T 5.T 6.T二、单选题1.在计算机中,最适合进行数值加减运算的数值编码是 .A. 原码B. 反码C. 补码D. 移码2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数 .A. 112B. 120C. 121D. 1223.关于ASCII码,在计算机中的暗示方法准确地描述是 .A. 使用8位二进制数,最右边一位为1B. 使用8位二进制数,最左边一位为1C. 使用8位二进制数,最右边一位为0D. 使用8位二进制数,最左边一位为04.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________.A. X∧Y=1000B. X∨Y=1111C. X⊕Y=0011D. ¯Y=10005.下列叙述中正确的是().A.高级语言就是机器语言B.汇编语言法式、高级语言法式都是计算机法式,但只有机器语言法式才是计算机可以直接识别并执行的法式C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种D.C源法式经过编译、连接,若正确,执行后就能获得正确的运行结果6.用C语言编写的源法式经过编译后,若没有发生编译毛病,则系统将().A.生成可执行文件B.生成目标文件C.输出运行结果D.自动保管源文件7.下列叙述中不正确的是().A.main函数在C法式中必需有且只有一个B. C法式的执行从main函数开始,所以main函数必需放在法式最前面C. 函数可以带参数,也可以不带参数.D. 每个函数执行时,按函数体中语句的先后次第,依次执行每条语句解:1.C 2.C 3.D 4.B 5.B 6.B 7.B三、填空题1.(87.625)10=()2=()8=()162.(1001010111001.10111)2=()8=()16=()103.输入三个数,计算并输出三个数的和与三个数的乘积.法式如下:#include <stdio.h>void main(){inta,b,c,s,z;printf("Please input a b c:\n");s=a+b+c;printf("%d\n",s);}*4. 输入三角形三条边的边长,计算并输出三角形的面积.根据三条边的边长,计算三角形面积的公式如下:法式如下:#include <stdio.h>#include <math.h>void main(){double x,y,z,s,dime;scanf("%lf%lf%lf",&x,&y,&z);dime=sqrt(s*(s-x)*(s-y)*(s-z));}解:1.1010111.101 127.5 57.A2.11271.56 12B9.B8 4793.718753.scanf("%f%f%f",&a,&b,&c); z=a*b*c; printf("%f",z);4.s=(x+y+2)/2; printf("%f",dim);四、编程题1.仿照例1.1,编法式在屏幕上显示:*****************************MerryChristmas!HappyNewYear!*****************************解:#include <stdio.h>void main(){ printf("*****************************\n");printf(" Merry Christmas!\n");printf(" Happy New Year!\n");printf("*****************************\n");}2.仿照例1.2编程,输入一个整数,计算这个数的平方.解:#include<stdio.h>void main(){ int a,z;printf("请输入一个整数:\n");scanf("%d",&a);z=a*a;printf("%d*%d=%d\n",a,a,z);}*3.仿照例1.3编程,输入两个数后,输出其中较小值.解:#include<stdio.h>float min(float x, float y){ float m;if (x<y) m=x;else m=y;return m;}void main(){ float a,b,c,mindata;printf("请输入二个数:\n");scanf("%f %f",&a,&b);mindata=min(a,b);printf("较小数:%f\n",mindata);}*4.仿照例1.2编程,输入a、b后,输出一元一次方程ax+b=0的解.解:#include<stdio.h>void main(){ float a,b,x;printf("请输入a、b:\n");scanf("%f %f",&a,&b);x=-a/b;printf("x=%f\n",x);}*5.仿照例1.2编程,输入圆柱体的半径和高,计算并输出圆柱体的体积.解:#include <stdio.h>void main(){ float r,h,s,v;printf("Please input r and h:\n");scanf("%f %f",&r,&h);v=3.14*r*r*h;printf("V=%f\n",v);}习题2一、判断题1.任何变量都必需要界说其类型.2.C语言的double类型数据在其数值范围内可以暗示任何实数.3.C语言的任何类型数据在计算机内都是以二进制形式存储的.4.isdigit(‘5’)的结果为0.5.printf函数中格式符“%c”对应的参数只能是字符类型.6.按格式符“%d”输出float类型变量时,截断小数位取整后输出.7.在C语言法式中,ABC与abc是两个相同的变量.8.scanf函数中的格式符“%d”不能用于输入实型数据.9.格式符“%f”不能用于输入double类型数据.10.当格式符中指定宽度时,输出的信息完全取决于所指定的宽度.解:(1)T (2)F (3)T (4)F (5)F (6)F (7)F (8)T (9)T (10)F二、指出下列各项中哪些是C语言中的常量,并指出其类型10,150 007 –0x3d π 1e0 e1 o7o8‘x’ ‘x o’ 1.52e0.5 sin(3) 0xf16 ‘\a’‘\009’1.414E+22.54‘\\’ ‘a’+2 0x100h 0128 10L解:合法的C常量有:整型常量: 007 –0x3d0xf16 10L实型常量: 1e0 1.414E+2字符型常量:‘x’‘\a’‘\\’三、指出下列各项中哪些是C语言中的用户标识符x_1 X_2 High printf β 3DS i/je2 -e2 count Int number $23 next_sizeof IF sum_12_123# NO1: double for解:C的用户标识符有:x_1 X_2 High e2 count Int number next_ IF sum_12四、单项选择题1.C语言中,char型数据在内存中的存储形式是().A.原码 B.反码C.补码D.ASCII码2.若有界说语句“char c='\72';”则变量c().A.包括1个字符B.包括2个字符C.包括3个字符D.界说分歧法3.C语言中的基本数据类型包括().A.整型、实型、逻辑型B.整型、实型、字符型C.整型、逻辑型、字符型D.整型、实型、逻辑型、字符型4.设c1、c2为字符型变量,执行语句“c1=getchar();c2=getchar();”时,从键盘输入A↙,c1和c2的值分别为().A.都是‘A’B.c1是‘A’,c2未输入C.c1未输入,c2是‘A’D.c1是‘A’,c2是‘\n’5.a、b是整型变量,执行语句“scanf("a=%d,b=%d",&a,&b);”,使a和b的值分别为1和2,正确的输入是().A.1 2B.1,2C.a=1,b=2D.a=1 b=26.设c为字符型变量值为‘A’,a为整型变量值为97,执行语句“putchar(c);putchar(a);”后,输出结果为().A.AaB.A97C.A9D.aA7.已知字母A的ASCII码值为65,以下语句段的输出结果是().char c1='A',c2='Y'; printf("%d,%d\n",c1,c2);A.输出格式非法,输犯毛病信息B.65,90C.A,YD.65,898.若要使用输入语句“scanf("%4d%4d%10f",&i,&j,&x);”,为i输入-10,为j输入12,为x输入345.67,则正确的输入形式是().A.–1012345.67↙B.–1012345.67↙C.–10001200345.67↙D.–10,12,345.67↙9.能正确地界说符号常量的是().A.#define n=10B.#define n 10C.#define n 10; D.#DEFINE N 1010.在C语言中,int、char、short三种类型数据在内存中所占的字节数().A.由用户自己界说 B.均为2个字节 C.是任意的 D.由机器字长决定解:(1) D (2) A (3) B (4) D (5) C(6) A (7) D (8) B (9) B (10) D五、填空题1.char ch='$';float x=153.4523;语句“printf("%c%–8.2f\\n",ch,x);”的输出结果是 .解:$153.45 \n2.int i=123;float x=– 1234.56789;语句“printf("i=%5d x=%7.3f\n",i,x);”的输出结果是 .解:i= 123 x=-1234.5683.char c='a';int a=65;语句“putchar(c+1);putchar(a);”的输出结果是 .解:bA4.int a=98;语句“printf(“%d,%c,%o,%x”,a,a+1,a+2,a+3);”的输出结果是 .解:98,c,144,655.int k; float f;语句“scanf(“%3d%*4d%6f”,&k,&f);”执行时输入 12345678765.43↙则 k= ,f= .解:k=123 f=8765.46.使用pow()函数时,法式的开头必需写一条预处置命令: .解:#include <math.h>5.填空题.(1)int i=123,j=45;函数printf("%d,%d\n",i,j);的输出结果是.解:123,45(2)int i=123; float x=-45.678;语句printf("i=%5d x=%7.4f\n",i,x); 的输出结果是.解:i= 123 x=-45.6780(3)float alfa=60,pi=3习 题 3一、根据下列数学式,写出C 的算术表达式.解:-(a 2+b 2)×y 4的C 表达式:-(a*a+b*b)*pow(y,4)π++-x 12tan 102的C 表达式:(sqrt(2)+10*10)/(pow(tan(x),-1)+3.141593) 5.3|)sin(|x 的C 表达式:sqrt(pow (fabs (sin(x)),3.5))56e x -的C 表达式:pow(x,6)-exp(5)cd d c b a d c ab +-+++221的C 表达式:(1.0/2*a*b+c+d)/(a+2*b-(c+d)/c/d)二、依照要求,写出下列C 的表达式.1.写出int 类型变量x 为“奇数”的表达式.解:x%2==12.Int 类型变量x 、y 、z ,写出描述“x 或y 中有且仅有一个小于z ”的表达式.解:x<z&&y>=z||x>=z&&y<z3.将double 类型变量y 保管四位小数的表达式.解:(int)(y*10000+0.5)/10000.04.为变量s 赋值:取变量x 的符号,取变量y 的绝对值.解:s=(x>=0?1:-1)*(y>=0?y:-y)5.条件“-5≤x ≤3”所对应的C 逻辑表达式.解:-5<=x&&x<=36.a 、b 是字符变量,已知a 的值为年夜写字母、b 的值为小写字母,写出判断a 、b 是否为同一字母(不区分年夜小写)的逻辑表达式 解:a+32==b 或 b-a==32?1:07.int 类型变量a 、b 均为两位正整数,写出判断a 的个位数即是b 的十位数、且b的个位数即是a的十位数的逻辑表达式.解:a%10==b/10&&a/10==b%108.写出判断某个人是否是成年人(年龄年夜于21),且不是老年人(年龄年夜于65)的逻辑表达式.解:y>21&&y<=659.写出取变量a、b、c中最年夜值的条件表达式.解:(a>b?a:b)>c?(a>b?a:b):c10.若字符变量ch为小写字母,则将其转换为对应的年夜写字母.解:ch=ch>='a'&&ch<='z'?ch-32:ch三、单项选择题1.设int x=3,y=4,z=5;,下列表达式中值为0的是().A.'x'&&'y'B.x<=yC.x||y+z&&y–zD.!((x<y)&&!z||1)2.已知x=10,ch='A',y=0;,则表达式“x>=y&&ch<'B'&&!y”的值是().A.0B.1C.“假”D.“真”3.判断char型变量c为数字字符的正确表达式为().A.'0'<=c<='9'B.'0'<=c&&c<='9' C.c>='0'||c<='9'D.c>=0&&c<=94.下列运算符中,优先级最低的是().A.?:B.&&C.= =D.*=5.若有条件表达式“x?a++:b--”,则以下表达式中()等价于表达式x.A.x==0B.x!=0C.x==1D.x!=16.有界说int k=4,a=3,b=2,c=1;,表达式“k<a?k:c<b?c:a”的值是().A.4B.3C.2D.17.执行下列法式段后,变量a,b,c的值分别是().int x=10,y=9,a,b,c;a=(--x= =y++)?--x:++y;b=x++;c=y;A.a=9,b=9,c=9B.a=8,b=8,c=10C.a=9,b=10,c=9D.a=1,b=11,c=108.有界说int a=9;,语句“a+=a–=a+a;”执行后,变量的值是().A.18B.9C.–18D.–99.设x和y均为int型变量,则语句“x+=y;y=x–y;x–=y;”的功能是().A.把x和y按从小到年夜排列B.把x和y按从年夜到小排列C.无确定结果D.交换x和y中的值10.有界说double x=1,y;,表达式“y=x+3/2”的值是().A.1B.2C.2.0D.2.511.设有界说int x;double y;,则下列表达式中结果为整型的是().A.(int)y+xB.(int)x+yC.int(y+x)D.(double)x+y12.设有整型变量x,下列说法中,毛病的是().A.“5.0”不是表达式B.“x”是表达式C.“!x”是表达式D.“sqrt(x)”是表达式解:(1)D (2)B (3)B (4)D (5)B (6)D(7)B (8)C (9)D (10)C (11)A (12)A四、填空题.1.设float x=2.5,y=4.7; int a=7;,表达式x+a%3*(int)(x+y)%2/4 值为 .解:2.52.设int x=2,y=3;,执行语句“x*=x+y”后x的值为 .解:103.设int x=17,y=5;,执行语句“x%=x–y”后x的值为.解:54.设 int a=6,b=4,c=2;,表达式 !(a-b)+c-1&&b-c/2 的值为 .解:15.设 int a=2,b=4,x,y;,表达式!(x=a)||(y=b)&&!(2-3.5) 的值为 .解:06.判断变量a、b是否绝对值相等而符号相反的逻辑表达式为 .解:a==-b7.判断变量a、b中必有且只有一个为0的逻辑表达式为 .解:a*b==0&&a+b!=08.设int m=2,n=2,a=1,b=2,c=3;执行语句d=(m=a==b)&&(n=b>c);后,m和n的值分别为 .解:m为0,n为29.设int a=2;,表达式“a%2!=0”的值为.解:010.设char c='y';,表达式“c>='a'&&c<='z'|| c>='A'&&c<='Z'”的值为.解:111.写出与代数式 (x+2)e x+2对应的C表达式 .解:(x+2)*exp(x+2)12.设int a=2;执行语句a=3*5,a*4;后a的值为 .解:15五、写出下列法式的输出结果.1.#include <stdio.h>void main(){unsigned k,n;scanf("%u",&n); //输入数据为:69k=n%10*10+n/10;printf("n=%d k=%d\n",n,k);}解:n=69 k=962.#include <stdio.h>void main(){int x=2,y=3;x*=y+4;printf("%d,%d\n",x,y);x/=y=5;printf("%d,%d\n",x,y);x-=y%2;printf("%d,%d\n",x,y);}解:14,32,51,53.#include <stdio.h>void main(){int a, b;a=8;b=7;a=(a-- ==b++)? a%3 : a/3;printf("a=%d b=%d\n",a,b);}解:a=2 b=8六、法式填空题.1.以下法式输入三个整数值给a,b,c,法式把b中的值给a,把c 中的值给b,把a中的值给c,交换后输出a、b、c的值.例如输入1 2 3,输出a=2 b=3 c=1.#include <stdio.h>void main(){ int a,b,c,①;p rintf(“Enter a,b,c:”);scanf(“%d%d%d”,②);③; a=b; b=c; ④;printf(“a=%d b=%d c=%d\n”,a,b,c);}解:① t ② &a,&b,&c ③ t=a ④ c=t2.以下法式不借助任何变量把a、b中的值进行交换.#include <stdio.h>void main(){ int a,b;printf(“Input a,b:”);scanf(“%d%d”,①);a+=②; b=a-③; a-= ④;printf(“a=%d b=%d\n”,a,b);}解:① &a,&b ② b ③ b ④ b七、编程题.1.输入3个字符后,按各字符ASCII码从小到年夜的顺序输出这些字符.解:#include <stdio.h>void main(){ char c1,c2,c3,t,min,mid,max;c1=getchar(); c2=getchar(); c3=getchar();min=(t=c1<c2?c1:c2)<c3?t:c3;max=(t=c1>c2?c1:c2)>c3?t:c3;mid=c1+c2+c3-min-max;putchar(min);putchar(mid);putchar(max);}2.输入两点坐标(x1,y1)、(x2,y2),计算并输出两点间的距离.解:#include <stdio.h>#include <math.h>void main(){double x1,y1,x2,y2,d;printf(“请输入两点坐标 (x1,y1),(x2,y2)\n”);scanf(“(%lf,%lf),(%lf,%lf)”,&x1,&y1,&x2,&y2);d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));printf(“两点间距离=%f\n”,d);}3.编写法式,计算球体积并输出它的值.要求输入半径值,计算结果保管三位小数.解:#include <stdio.h>#include <math.h>#define PI 3.1415926void main(){ double r,gv;printf(“请输入半径值:\n”);scanf(“%lf”,&r);gv=4.0/3*PI*pow(r,3);printf(“半径为%f的球的体积为:%.3f\n”,r,gv);}4.输入三角形的底和高,求三角形面积.解:#include <stdio.h>#define PI 3.14159void main(){double a,h,s;printf(“请输入三角形的底,高\n”);scanf(“%lf,%lf”,&a,&h);s=a*h/2;printf(“三角形面积=%f\n”,s);}5.编写法式,输入一个实数后输出该数的绝对值.解:#include <stdio.h>void main(){double x,y;printf(“请输入一个实数\n”);scanf(“%lf”,&x);y=x>=0?x:-x;printf(“|%g|=%g\n”,x,y);}6.输入梯形的上底、下底和高,求梯形面积.解:#include <stdio.h>void main(){double a,b,h,s;printf(“请输入梯形的上底,下底,高\n”);scanf(“%lf,%lf,%lf”,&a,&b,&h);s=(a+b)*h/2;printf(“梯形面积=%f\n”,s);}7. 输入矩形的边长,求矩形面积.解:#include <stdio.h>void main(){double a,b,s;printf(“请输入矩形的长,宽\n”);scanf(“%lf,%lf”,&a,&b);s=a*b;printf(“矩形面积=%f\n”,s);}8. 已知等差数列的第一项为a,公差为d,求前n项之和,a、d、n由键盘输入.解:#include <stdio.h>void main(){int a,d,n,sum;printf(“请输入等差数列的首项公差项数\n”);scanf(“%d%d%d”,&a,&d,&n);sum=a*n+n*(n-1)*d/2;printf(“ sum=%d\n”,sum);}9. 编写法式,将d天h小时m分钟换算成份钟,输入d、h、m,输出换算结果.解:#include <stdio.h>void main(){int d,h,m,t;printf(“请输入天小时分钟\n”);scanf(“%d%d%d”,&d,&h,&m);t=d*24*60+h*60+m;printf(“%d天%d小时%d分钟=%d分钟\n”,d,h,m,t);}10. 编写法式,求出给定半径r的圆以及内接正n边形的面积,输出计算结果.r和n的值由键盘输入.解:#include <stdio.h>#include <math.h>#define PI 3.14159void main(){double r,s1,s2;int n;printf(“Input r n\n”);scanf(“%lf%d”,&r,&n);s1=PI*r*r;s2=n/2.0*r*r*sin(2*PI/n);printf(“圆面积=%f,正内接%d边形面积=%f\n”,s1,s2);}习题4一、单项选择题1.下列语句将小写字母转换为年夜写字母,其中正确的是().A.if(ch>='a'&ch<='z')ch=ch-32;B.if(ch>='a'&&ch<='z')ch=ch-32;C.ch=(ch>='a'&&ch<='z')?ch-32:'';D.ch=(ch>'a'&&ch<'z')?ch-32:ch;2.下列各语句中,能够将变量u、s中最年夜值赋给变量t的是().A.if(u>s)t=u;t=s;B.t=s;if(u>s)t=u;C.if(u>s)t=s;else t=uD.t=u;if(u>s)t=s;3.假设变量x、k都已界说,下列语句片段中,无语法毛病的是().A.switch(x){case x>=90: putchar('A');case x<60: putchar('E');}B.switch(x) {case 1+2: k='A';defualt: k='E';case 2*4: k='B';}C.switch(x){case 2+x: k=x-2;case 3*x: k=x+3;default: k=0;}D.switch(x){case 3.5: k=0.5*x;case 7.8: k=8*x;default: k=0;}*4.与语句while(!s )中的条件等价的是().A.s==0B.s!=0C.s==1D.s=05.下列语句中,哪一个可以输出26个年夜写英文字母().A.for(a='A';a<='Z';printf("%c",++a));B.for(a='A';a<'Z';a++)printf("%c",a);C.for(a='A';a<='Z';printf("%c",a++));D.for(a='A';a<'Z';printf("%c",++a));6.判断下面的while循环体的执行次数().i=0;k=10;while( i=8 ) i=k––;A.8次B.10次C.2次D.无数次解:(1) B (2) B (3) B (4) A (5) C (6) D二、写出下列法式的输出结果1.#include <stdio.h>void main(){char x;。
c语言经典选择填空题1
选择题(30分)(第一部分分10分,第二部分12分,第三部分8分)第一部分:简单类题目( 50个题目,从中选择10,每题1分)1、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为(C) A.4 B.16 C.32 D.5222.以下程序的输出结果(B)。
main( ){ int x1=3, x2=0, x3=0;if (x1=x2+x3)printf("* * * *");else printf("# # # #");}A.输出:* * * * B.输出:# # # #C.存在语法错误 D.无输出结果3.下面四个选项中,均是合法转义字符的选项是(A)。
A.'\'' '\\' '\n' B.'\' '\017' '\"'C.'\018' '\f' 'xab' D.'\\0' '\101' 'xlf'4.若有说明:int a=1,b=2,c=3,d=4;则表达式a<b?a:c<d?c:d的值是(D)。
A、4B、3C、2D、15.设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是(D)。
A. i&&j B.i<=jC.i||j+k&&j-k D.!((i<j)&&!k||1)6.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是(C)。
A.num%2= =1 B. !(num%2= =0) C.!(num%2) D.num%27.有以下程序main(){ int m=3,n=4,x;x=-m++;x=x+8/++n;printf(“%d\n”,x);}程序运行后的输出结果是 ( D ) 。
C语言考试填空题(全部答案)
计算机程序设计基础(C语言)程序填空练习题程序填空:阅读程序。
在划线处填写适当的表达式或语句,使程序完整并符合题目要求1.输入一个字符,判断该字符是数字、字母、空格还是其他字符。
main( ) 参考答案:{ char ch;ch=getchar();if( ) ch>='a'&&ch<='z'|| ch>='A'&&ch<='Z' printf("It is an English character\n");else if( ) ch>='0'&&ch<='9'printf("It is a digit character\n");else if( ) ch==' 'printf("It is a space character\n");elseprintf("It is other character\n"); }2.10个学生成绩按交换法排序。
main(){ float score[10], temp1;int i, j;printf("Please enter score:\n");for (i=0; i<10; i++)scanf("%f",&score[i]);for (i=0; i<9; i++)for (j=i+1; j<10; j++)if (score[j] > score[i]){ temp1=score[j];score[j]=score[i];score[i]=temp1;}printf("Sorted results:\n");for (i=0; i<10; i++)printf("%4.0f\n", score[i]); }11.排序函数:用交换法按成绩由高到低对学生成绩重新排序void Sort(float score[ ],int n){ int i, j;float temp1;for (i=0; i<n-1; i++){ for (j=i+1; j<n; j++)if ( ) score[j] > score[i]{ temp1 = score[j];; score[j]=score[i];score[i] = temp1;}}}自定义一函数求n!, 编写程序输入n,输出n!.#include<stdio.h>long jc(int n){ int i=1;long p=1;while (i <= n){ p=p*i;i++; }} return p;main(){ int n;printf("Please enter n:");scanf("%d", &n);printf("%d! = %ld\n", n, ); jc(n)}4.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。
《C语言程序设计》形成性考核作业(1)解答
《C语言程序设计》作业1解答一、选择题1. 在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( A )。
A. mainB. MAINC. nameD. function2. C语言源程序文件的缺省扩展名为( D )。
A. cppB. exeC. objD. C3. 由C语言目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cppB. exeC. objD. c4. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车5. 每个C语言程序文件的编译错误分为( B )类。
A. 1B. 2C. 3D. 46. 设x和y均为逻辑值,则x && y为真的条件是( A )。
A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假7. 设有语句“int a=12; a+=a*a; ”,则执行结束后,a的值为( C )。
A. 12B. 144C. 156D. 2888. x>0 && x<=10的相反表达式为( A )。
A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>109. 字符串“a+b=12\n”的长度为( B )。
A. 6B. 7C. 8D. 910. 在下列符号常量定义中,错误的定义语句格式为( C )。
A. const M1=10;B. const int M2=20;C. const M3 10;D. const char mark='3';11. 带有随机函数的表达表达式rand( )%20的值在( C )区间内。
A. 1~19B. 1~20C. 0~19D. 0~2012. 当处理特定问题时的循环次数已知时,通常采用( A )循环来解决。
C语言程序设计选择填空习题及答案
习题一一、选择题1.C程序的基本单位是(A)。
A.函数B.文件C.语句D.字符2.C程序中的变量(B)。
A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关3.变量的说明在(B)。
A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关4.C语言是一种(C)。
A.机器语言B.符号语言C.高级语言D.面向对象的语言二、填空题1.一个C程序总是从主函数开始执行。
2.结构化程序由顺序、选择、循环三种基本结构构成。
3.一个C程序只有一个名为main的主函数。
4.C程序中的每个语句以分号结束。
5.C程序中,函数由函数首部和函数体组成。
6.每个基本结构有一个入口和一个出口,没有死循环和死语句。
7.算法是计算机解决问题所依据的步骤。
习题二一、选择题1.下列数据中属于字符串常量的是( B)。
A.ABC B."ABC" C.'abc' D.'A'2.在计算机内存中,'\n'占用的字节数是( C)。
A.4 B.3 C.1 D.23.字符串"ABC"在内存中占用的字节数是( D)。
A.6 B.8 C.3 D.44.在C语言中,合法的长整型常数是( B)。
A.568701400 B.0L C.0.03546287 D.2.654e115.char型常量在内存中存放的是( A)。
A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是( D)。
A.?bb B.a=8 C. b.βD.b_47.下列不正确的转义字符是( D)。
A.\\ B.\ 0 C.\" D.0x48.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。
A.0 B.1 C.2 D.39.设a的值为5,执行下列语句后,b的值不为2的是( C)。
A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/210.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。
C语言程序设计(本科C卷及答案)(1)(1)
题号一二三四五六总分得分考试形式:■闭卷□开卷■笔试□机试答卷要求:试卷答案需填写至答题卡内一、单项选择题(每小题 2 分,共 30 分)1 2 3 4 5 6 7 8 9 10C D A B B A D A C C11 12 13 14 15C D A C B1、C语言源程序文件是一个后缀为( )的文件。
(第1章)A) .bas B) .java C) .c D) .pas2、下列哪个图形不属于传统流程图的符号( )(第2章)A) B) C) D)3、下列标识符中,不合法的用户标识符为()。
(第3章)A) a+4B) If C) then D) _1234、下面运算符优先级最高的是()。
(第3章)A) * B) !C) -(减号)D) =5、以下哪个是不正确的转义字符()。
(第3章)A) '\\'B) '077'C) '\0'D) '\n'6、若int n,x=1,y=0,则条件表达式n=x<y?x:y的结果为()。
(第4章)A) 0 B) 1 C) 2 D) 表达式错误7、分析以下程序, 下列说法正确的是()。
(第4章)int main(){ int i=10,m=0,n=0,k=0;switch(i/10){ case 0: m++;n++;break;case 10: n++; break;default: k++;n++; }printf("%d %d %d\n",m,n,k); }A) 0 0 0 B) 0 1 0 C) 1 1 0 D) 0 1 18、程序段如下:则以下说法中正确的是()。
(第5章)int k=-10; while(k<0) k=k+1;A) while循环执行10次B) while循环执行11次C) 循环体语句一次也不执行D) 循环是无限循环9、下列程序段执行后k值为()。
《C语言程序设计》试题1及答案
《C语言程序设计》试题一 (1)一、填空题 (1)二、选择题 (2)三、读程序题 (5)四、程序填空题 (6)五、编程题 (7)《C语言程序设计》试题一答案 (10)《C语言程序设计》试题一一、填空题1、C语言中基本的数据类型有:整形、字符型、实型。
2、C语言中普通整型变量的类型说明符为int。
4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是-112 。
5、有如下语句:char A[ ]={”I am a student”}; 该字符串的长度是11 ,A[3]= m 。
6、符号”a”和’a’的区别是“a”是字符串常量‘a’是字符常量。
7、所谓“指针”就是一个变量的地址。
“&”运算符的作用是求地址。
“*”运算符的作用是表示定义了一个指针。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是1,3,2二、选择题1、设整型变量a为5,使b不为2的表达式是( C )。
A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( C )组成配对关系。
A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是( D )。
int x=10,y=10;printf(“%d %d\n”,x--,--y);A. 10 10B. 9 9C. 9 10D.10 94、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为(不)。
A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i5、选出下列标识符中不是合法的标识符的是(D)。
A. hot_doB. cat1C. _priD. 2ab6、以下程序的输出结果是(A)。
C语言题库(1-9)
1、程序填空题目:请编写函数void fun (int x, int pp[ ], int *n),它的功能是求出能整除x 且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如:若x中的值为30,则有4个数符合要求,它们是1,3,5,15。
#include <stdio.h>#include <conio.h>void fun(int x, int pp[], int *n){ int i,j=0;for( i=1;i<=x; i=i+2)if(x%i == 0)pp[j++]=i;*n=j;}void main(){ int x, aa[1000], n, i;printf("\nplease enter an integer number:\n");scanf("%d",&x);fun(x,aa,&n);for(i=0;i<n;i++)printf("%d ", aa[i]);printf("\n");}2、程序填空题目:请编写一个函数void fun(char *tt, int pp[ ]),统计在tt字符串中’a’到’z’26个字母各自出现的次数,并依次放在pp所指数组中。
例如:当输入abcdefgabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0#include<stdio.h>#include<conio.h>void fun(char *tt,int pp[]){ int i;for(i=0; i<26; i++)pp[i]=0;for( ; *tt; tt++)if(*tt<='z'&&*tt>='a')pp[*tt-97]++;}void main(){ char aa[1000];int bb[26],k;printf("\nPlease enter a char string:");scanf("%s",aa);fun(aa,bb);for(k=0; k<26; k++) printf("%d",bb[k]);printf("\n");}3、程序填空题目:请编写一函数void fun(int m, int k, int xx[ ]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。
c语言试卷和答案1
s=s+f;
printf(“%.0f #”, s);
}
}
程序2
#include <stdio.h>
void main()
{ long fun (long number);
printf(“%ld\n”, fun(-974));
}
long fun(long number)
(5) 运算符 “+”不能作为单目运算符。
(6) 如果运算符 “*”和 “/”都是右结合的,这表达式10*6/5的值是10。
(7) s(s-a)(s-b)(s-c)是合法的C语言表达式。
(8) 表达式!!6的值是6。
(9) 表达式~(~2<<1)的值是5。
(28)str[k]=str[k]-‘A’+ ‘a’
4.(29)ss=s
(30)s-ss
四、程序阅读题
程序1 1 # 3 # 21 #
程序2 4 # 47 # 479 # -479
程序3 IF YOU FAIL TOP
五、程序设计题(略)
}while(month>=1 || month<=12);
B)do{ scanf(“%d”, &month);
}while(month>=1 && month<=12);
C)do{ scanf(“%d”, &month);
}while(month<1 || month>12);
else
b=3;
printf(“%d”, b);
A)3 B)2 C)1 D)0
c语言填空题1
下面程序段的输出结果是__10___. int a=12;a=a&052;printf("%o\n",a);当a=3,b=2,c=1;时,执行以下程序段后 c=__2___. if(a>b) a=b; if(b>c) b=c; else c=b; c=a;若所用变量都已正确定义,请填写以下程序段的输出结果__OK___.for(i=1;i<=5;i++);printf("OK\n");若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 该数组的元素中,数值最小的元素的下标是_8____.函数的_递归____调用是一个函数直接或间接地调用它自身.以下程序的输出结果是__8 (用跟踪程序运行的方法观察递归的过程)___。
fun( int x ,int *s){ int f1, f2;if( n == 1 || n == 2) *s = 1;else{ fun( n - 1, &f1) ;fun(n - 2, &f2);*s = f1 + f2;}}main(){ int x;fun(6, &x);printf(“%d\n”, x );}int main(struct node *first){struct node *p;int m;p = first ->next;m = p ->data;for(p =p ->next; p != '\0'; p =__2002___ )if( _Shangxian____ ) m = p -> data;return m;}调用 fopen 函数打开一文本文件,在"使用方式"这一项中, 以“只读”方式打开需填入_r____. 设 int x=1/4;则x的值为_0____.设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为___1__.int x=4,y=4,z=2;x=y==z; 则x的值为_0____.以下程序的执行结果是__9___。
C语言复习题库(1)
一、填空题(每空 1 分,共20 分)1.程序的三种基本结构为(顺序)、(选择)和(循环)。
2.在C 语言中,用(;)表示语句的结束。
3.语句printf("%%d%d",123);将输出:(“%d123 )。
4.逻辑运算的结果值是(0 )或( 1 )。
5.数组 int a[3][4];共定义了(12 )个数组元素。
6.在 C 语言中,正确的标识符是由(数字、字母、下划线)组成的,且由(字母和下划线)开头的。
7.一个算法应具有的特点有:(有穷性)、(确定性)、有零个或多个输入、有一个或多个输出、有效性。
8.在程序执行过程中,其值不发生改变的量称为(常量),其值可变的量称为(变量)。
9.若有定义:int m=5,y=2;则执行表达式y+=y-=m*=y 后的y 值是(-16 )。
10.在三种正规循环中,当条件表达式的值为(0 )时,就结束循环。
11.C 语言中函数的参数分为(形式参数)和(实际参数)。
12.当函数的数据类型省略时,默认的数据类型为(int 型或者整数型)型。
13.按变量地址访问变量的方法叫(直接访问),通过存放变量地址的变量去访问变量的方法叫(间接访问)。
14.若有定义:int [3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是(0 ),a[2][1]得到的初值是( 6 )。
15.文件包含的一般形式为(#include <文件名> )。
16.宏定义中宏名一般用大写字母表示,容易做到(一改全改)。
17.结构体是一种(构造)数据类型用途是把(不同类型)的数据组合成一个整体。
18.位运算的运算对象只能是(整型)或(字符型)数据,而不可以是其他类型的数据。
19.(文件)是存储在外部介质上数据的集合,是操作系统数据管理的单位。
20.设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是(9 )。
C程序分析填空训练题1
程序分析填空训练题(1) 若有语句int i=-19,j=i%4;printf("%d\n",j);则输出的结果是【1】。
(2) 若有程序main(){ int i,j;scanf("i=%d,j=%d",&i,&j);printf("i=%d,j=%d\n ",i,j);}要求给i赋10,给j赋20,则应该从键盘输入【2】。
(3) 若有以下程序main(){ int p,a=5;if(p=a!=0)printf("%d\n",p);elseprintf("%d\n",p+2);}执行后输出结果是【3】。
(4) 若有以下程序main(){ int a=4,b=3,c=5,t=0;if(a<b)t=a;a=b;b=t;if(a<c)t=a;a=c;c=t;printf("%d %d %d\n",a,b,c);}执行后输出结果为【4】。
(5) 若有以下程序main(){ inta[4][4]={{1,2,-3,-4},{0,-12,-13,14} ,{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0;for(i=0;i<4;i++){ for(j=0;j<4;j++){ if(a[i][j]<0) continue;if(a[i][j]==0) break;s+=a[i][j];}}printf("%d\n",s);}执行后输出结果是【5】。
(6) 若有以下程序main(){ char a;a='H'-'A'+'0';printf("%c\n",a);}执行后输出结果是【6】。
(7) 若有以下程序int f(int x,int y){ return(y-x)*x; }main(){ int a=3,b=4,c=5,d;d=f(f(3,4),f(3,5));printf("%d\n",d);}执行后输出结果是【7】。
C语言程序设计试卷1
《C语言》考试试卷I一、单选题:(每小题2分,共40分)1、在C语言中,正确的int类型的常数是()A、32768;B、0x5g ;C、038;D、12 ;2、下列常数中不能作为C的常量的是()A、0xa5B、2.5e-5C、3e2D、05823、在C语言中,若一个i nt型数据在内存中占2个字节,则unsi gned int 型数据的取值范围是()A、0~25B、0~65535C、0~32767D、-32768~327674、以下说法中正确的是()A、C语言程序总是从第一个定义的函数开始执行。
B、C语言程序总是从main()函数开始执行。
C、C语言程序中的main()函数必须放在程序的开始部分。
D、一个C函数中只允许一对花括号。
5、C语言中用语结构化程序设计的三种基本结构是()A、顺序结构、选择结构、循环结构;B、if ,switch ,break ;C、for ,while ,d o—while;D、if ,for ,continue ;6、对C语言中标识符,下列说法正确的是()A、标识符中的第一个字母必须是字母。
B、标识符中的第一个字母必须是下划线。
C、标识符的前两个字母必须是字母和下划线。
D、标识符中的第一个字母必须是字母或下划线。
7、已知int i;float f;正确的语句是()A、(int f)% iB、int (f% i )C、int (f % i)D、(int)f % i8、以下错误的转义字符是()A、'\\'B、' \'C、' \81'D、' \0 '9、以下正确的描述是( )A、只能在循环体内和switch语句体内使用break语句。
B、在循环体内使用break语句或continue语句的作用相同。
C、continue语句的作用是结束整个循环的执行。
.D、break语句能够一次从多层循环嵌套中退出。
10、C语言对嵌套if语句的规定是:else总是与()A、其之前最近的if配对B、第一个if配对C、缩进位置相同的if配对D、其之前最近的且尚未配对同一层内的if配对11、在定义int a[5][6];后,第10个元素是()A、a[2][5]B、a[2][4]C、a[1][3]D、a[1][5]12、以下不正确的定义语句是()A、double x[5]={2.0 , 4.0 , 6.0 , 8.0 , 10.0 };B、int y[5]={0 , 1 , 3 , 5 , 7 , 9 };C、char c1[ ]={ '1' , '2', '3' , '4' , '5' };D、char c2[ ]={'\x10' , '\xa' , '\x8' };13、下面()是错误的if语句(设int x,a,b;)A、if(a=b)x++;B、if(a=<b)x++;C、if(a-b)x++;D、if(x)x++;14、能正确表示a和b同时为正或同时为负的逻辑表达式是( )A、(a>=0‖b>=0)&&(a<0‖b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a+b>0)&&(a+b<=0)D、(a>0&&b>0)||(a<0&&b<0)15、下面有关for循环的正确描述是:()A、for循环只能用于循环次数已经确定的情况。
c语言程序设计题目及解答 (1)
printf(“%.2lf\n”,s);
}
2.计算球体积10分
题目描述
根据输入的半径值,计算球的体积。
输入描述
输入数据包括一个实数,表示球的半径。#define PI 3.1415927
输出描述
输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
A. 'x'&&'y' B. x<=y C. x||y+z&&y–z D. !((x<Y)&&!Z||1) < div>
6.设x,y,z,t均为整型变量,现有如下语句x=y=z=1;t=++x‖++y&&++z;,则执行这个语句后t的值为( )。[B]2分
A. 2 B. 1 C. 0 D.不定值
7.以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C语言表达式ቤተ መጻሕፍቲ ባይዱ( )。[A]2分
#include<stdio.h>
int main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if(x>y){__(1)__}
if(x>z){__(2)__}
if(y>z){__(3)__}
printf("small to big: %d %d %d\n",x,y,z);
输入数据包含一个实数。
《C语言程序设计》复习题有答案1
《C语言程序设计》复习题有答案1《C语言程序设计》复习题一、填空题1、 C 语言的源程序必须通过编译和链接后,才能被计算机执行。
2、 C 语言的源程序必须通过编译和连接后,才能被计算机执行。
3、C语言中的标示符可分为关键字、拥护标示符和预定义标识符3类。
4、C语言中的标示符可分为关键字、用户标识符和预定义标示符3类。
5、在C语言中,用关键字 float 定义单精度实型变量。
6、在C语言中,用关键字 double 定义双精度实型变量。
7、在C语言中,用关键字 char 定义字符型变量。
8、在C语言的赋值表达式中,赋值好左边必须是变量。
9、设C语言中的一个int型数据在内存中占2个字节,则int型数据的取值范围为-32768--32768 。
10、若有定义语句:int s=6;则表达式s%2+(s+1)%2的值为 1 。
11、若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为-60 。
12、若a是int型变量,则执行表达式a=25/3%3后a的值为 2 。
13、在程序运行过程中,其值不能被改变的量称为常量。
14、C程序中定义的变量,代表内存中的一个存储单元。
15、C语言中,int类型数据字符占内存 2 个字节。
16、C语言中,char类型数据占内存 1 个字节。
17、C语言的字符常量是用单引号括起来的一个字符。
18、语句printf(“\n”);的作用是换行输出。
19、10/3的结果是3 。
20、10%3的结果是 1 。
21、C语句的最后用;结束。
22、要使用putchar函数,在#include命令行中应包含的头文件是#include。
23、要使用getchar函数,在#include命令行中应包含的头文件是#include。
24、为表示关系|x|≥9;应使用的C语言表达式是x<=-9 || x>=9 。
25、为表示关系|x|≤9;应使用的C语言表达式是x>=-9&&x<=9 。
c语言程序填空题(1)
三、程序填空题导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。
这类习题的设计就是要引导读者逐步掌握编程的方法。
本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。
在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。
【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。
#include <stdio.h>main(){ int a,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);a= ①;b= ②;a= ③;printf("a=%d,b=%d\n",a,b);}页脚内容1【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。
#include <math.h>double pi(long n){ double s=0.0;long i;for(i=1;i<=n;i++)s=s+ ①;return( ② );}【3.3】下面的程序的功能是求一维数组中的最小元素。
findmin(int *s,int t,int *k){ int p;for(p=0,*k=p;p<t;p++)if(s[p]<s[*k])页脚内容2①;}main(){ int a[10],i,*k=&i;for(i=0;i<10;i++)scanf("%d",&a[i]);findmin(a,10,k);printf("%d,%d\n",*k,a[*k]);}【3.4】下面程序的功能是计算1-3+5-7+ …… -99+101的值。
综合试题A(1)
第一部分:C语言程序设计试卷(共100分)一、填空题(每题1分,共10分)1、若a=10,b=20,则表达式!(a<b)的值是( )。
2、数字字符0的ASCII值为48,若有以下程序,程序运行后的输出结果是()。
main(){char a='1',b='2';printf("%c,",b++);printf("%d\n",b-a);}3、执行以下的程序段后,m的值是( )。
int a[2][3]={{l,2,3},{4,5,6}};int m,*p;p=&a[0][0];m=p[4];4、下面的程序执行后输出结果是()。
main(){int x=3,y=0,z=1;if(x=y+z) printf("* * * *");else printf("####");}5、下面函数的功能是( )。
int funl(char *x){ char *y=x;while(*y++);return(y-x-1);}6、若由以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是( )。
int w[10]={23,54,10,33,47,98,72,80,61},*p=w;7、下面程序的输出是( )。
main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}8、设Y是int型变量,请写出判断Y为奇数的关系表达式( )。
9、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()。
10、以下定义的结构体类型包含两个成员,其中成员变量info用来存放整型数据;成员变量link是指向自身结构的指针。
请填空补充完整。
struct node{ int info;( ) link;};二、判断题(对的打√,错的打×,每题1分,共10分)1、C语言程序在编译时不检查语法错误。
C语言练习题1
一、填空题(20分,每空1分)1.一个完整的C程序有且仅有一个函数。
2.在内存中存储一个字符…a‟占用______个字节,而存储字符串”abcdef”则占用________个字节。
3.表达式4/5的值为________。
4.设int x=9,y=8,z=7,w; w=x>y>z; 则w的值为_________。
5.设x=4.5,a=7,y=3.4, 表达式x+a%3*(int)(x+y)%2/4的值为_____。
6.设a=14, 执行a+=a-=a*=a 后,a=___________。
7.设x=y=z=6, 执行x=(y>z)?x+2:x-2; 后,x=__________。
8.getchar( )函数用于输入, 而gets( )函数则用于输入______________。
9.设有定义语句:char ww[20]=” \t\\wab\n”; 则表达式:strlen(ww) 的值是__________。
10.设有定义语句:char str[7]=”abcdef”, 则数组元素str[2]中的字符是______,数组元素str[6]中的字符是__________。
11.函数中的形参和调用时的实参都是变量时,传递方式为________;都是数组名时,传递方式为_________。
12.设有char *p=”12345”, 则printf(“%s”,p)的输出是;而printf(“%c”,*p)的输出则是_________。
13.设有以下说明,则变量qq在内存中所占的字节数是________,如果将关键字struct 改为union 则变量qq所占的字节数为________。
struct student{ char name[10];int nl;float ave;} qq;14.巳知当前目录下有一个名为file.txt的文本文件,写出将该文件打开(只允许写)的语句:FILE *fP;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、程序填空题导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。
这类习题的设计就是要引导读者逐步掌握编程的方法。
本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。
在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。
【】下面程序的功能是不用第三个变量,实现两个数的对调操作。
#include <>main(){ int a,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);a= ① ;b= ② ;a= ③ ;printf("a=%d,b=%d\n",a,b);}【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。
#include <>double pi(long n){ double s=;long i;for(i=1;i<=n;i++)s=s+ ① ;return( ② );}【】下面的程序的功能是求一维数组中的最小元素。
findmin(int *s,int t,int *k){ int p;for(p=0,*k=p;p<t;p++)if(s[p]<s[*k])① ;}main(){ int a[10],i,*k=&i;for(i=0;i<10;i++)scanf("%d",&a[i]);findmin(a,10,k);printf("%d,%d\n",*k,a[*k]);}【】下面程序的功能是计算1-3+5-7+ …… -99+101的值。
main(){ int i,t=1,s=0;for(i=1;i<=101;i+=2){ ① ;s=s+t;② ;}printf("%d\n",s);}【】有以下程序段:s=;for(k=1;k<=n;k++)s=s+(k*(k+1));printf("%f\n",s);填空完成下述程序,使之与上述程序的功能完全相同。
s=;① ;k=0;do{ s=s+d;② ;d=(k*(k+1));}while( ③ );printf("%f\n",s);【】下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。
main(){ float x,amax,amin;scanf("%f",&x);amax=x;amin=x;while( ① ){ if(x>amax) amax=x;if( ② ) amin=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);}【】下面程序的功能是将形参x的值转换为二进制数,所得的二进制数放在一个一维数组中返回,二进制数的最低位放在下标为0的元素中。
fun(int x,int b[]){ int k=0,r;do{ r=x% ① ;b[k++]=r;x/= ② ;}while(x);}【】下面程序的功能是输出1到100之间每位数的乘积大于每位数的和的数。
例如数字26,数位上数字的乘积12大于数字之和8。
main(){ int n,k=1,s=0,m;for(n=1;n<=100;n++){ k=1;s=0;① ;while( ② ){ k*=m%10;s+=m%10;③ ;}if(k>s)printf("%d",n);}}【】下面程序的功能是统计用0至9之间的不同的数字组成的三位数的个数。
main(){ int i,j,k,count=0;for(i=1;i<=9;i++)for(j=0;j<=9;j++)if( ① ) continue;else for(k=0;k<=9;k++)if( ② ) count++;printf("%d",count);}【】下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。
main(){ int i,j;for(i=0;① ;i++){ j=i*10+6;if( ② ) countinue;printf("%d",j);}}【】下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数。
hcf(int m,int n){ int r;if(m<n){ r=m;① ;n=r;}r=m%n;while( ② ){ m=n;n=r;r=m%n;}③ ;}【】下面程序的功能是使用冒泡法对输入的10个浮点数从小到大进行排序。
排好序的10个数分两行输出。
程序如下:#include <>main(){ ① ;int i,j;printf("Input 10 numbers please\n");for(i=0;② ;i++ )scanf("%f", &a[i]);printf("\n");for(i=2;③ ;i++ )for(j=0;④ ;j++ )if( ⑤ ){ x=a[j];⑥ ;a[j+1]=x;}printf("The sorted 10 numbers;\n");for(i=0;⑦ ;i++ ){ if( ⑧ )printf("\n");printf("%f\t",a[i]);}printf("\n");}【】下面程序的功能是读入20个整数,统计非负数个数,并计算非负数之和。
#include ""main(){ int i,a[20],s,count;s=count=0;for(i=0;i<20;i++ )scanf("%d", ① );for(i=0;i<20;i++){ if(a[i]<0)② ;s+=a[i];count++;}printf("s=%d\t count=%d\n",s,count);}【】下面程序的功能是删除字符串s中的空格。
#include <>main(){ char *s="Beijing ligong daxue";int i,j;for(i=j=0;s[i]!='\0';i++)if(s[i]!= ' ') ① ;else ② ;s[j]= '\0';printf("%s",s);}【】下面程序的功能是将字符串s中所有的字符'c'删除。
请选择填空。
#include<>main( ){ char s[80];int i,j;gets(s);for(i=j=0;s[i]!= '\0';i++ )if(s[i]!= 'c') ① ;s[j]= '\0';puts(s);}【】下面程序的功能是输出两个字符串中对应相等的字符。
请选择填空。
#include <>char x[]="programming";char y[]="Fortran";main(){ int i=0;while(x[i]!= '\0' && y[i]!= '\0')if(x[i]==y[i])printf("%c", ① );elsei++;}【】下面程序的功能是将字符串s中的每个字符按升序的规则插到数组a中, 字符串a已排好序。
#include <>main(){ char a[20]="cehiknqtw";char s[]="fbla";int i,k,j;for(k=0;s[k]!= '\0';k++ ){ j=0;while(s[k]>=a[j] && a[j]!= '\0' )j++;for( ① )② ;a[j]=s[k];}puts(a);}【】下面程序的功能是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。
例如:输入的两个字符串分别为"abcdefg"和"abceef",则输出为-1。
#include <>main(){ char str1[100],str2[100],c;int i,s;printf("Enter string 1: "); gets(str1);printf("Enter string 2: "); gets(str2);i=0;while((str1[i] == str2[i] && str1[i]!= ① ))i++;s= ② ;printf("%d\n", s);}【】下面的函数expand在将字符串s复制到字符串t时,将其中的换行符和制表符转换为可见的转义字符表示,即用'\n'表示换行符,用'\t'表示制表符。
expand(char s[],char t[]){ int i,j;for(i=j=0;s[i]!= '\0';i++ )switch (s[i]){ case '\n': t[ ① ] = ② ;t[j++] = 'n';break;case '\t': t[ ③ ] = ④ ;t[j++] = 't';break;default: t[ ⑤ ] = s[i];break;}t[j] = ⑥ ;}【】下面的函数index(char s[], char t[])检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则送回-1。