C语言——顺序结构程序设计练习题
顺序结构程序设计习题
一、选择题:(以下各题□代表空格。)
1.以下程序运行的结果是:
#include
int main()
{int m=5,n=10;
printf(“%d,%d\n”,m++,--n);
}
A)5,9 B)6,9 C)5,10 D)6,10
2.以下程序运行的结果是:
#include
int main()
{int a=201,b=012;
printf(“%2d,%2d\n”,a,b);
return 0
}
A)01,12 B)201,10 C)01,10 D)20,01
3.有定义语句int a,b;若要通过语句scanf(“%d,%d,”&a,&b);使变量a得到数值6,变
量b得到数值5,下面输入形式,错误的是:
A)6,5<回车> B)6,□□<回车>
C)6 5<回车> D)6,<回车>5<回车>
4.设有如下程序:
#include
int main()
{char ch1=’A’,ch2=’a’;
printf”%c\n”,(ch1,ch2));
return 0;
}
则以下叙述正确的是:
A)程序的输出结果为大写字母A;
B)程序的输出结果为小写字母a;
C)运行时产生错误信息;
D)格式说明符的个数少于输出项个数,编译出错。
5.以下程序运行的结果是:
#include
int main()
{int x1=0xabc,x2=oxdef;
x2-=x1;
printf(“%X\n”,x2);
return 0;
}
A)ABC B)0XABC C)0X333 D)333
6.以下程序输出的结果是:
#include
int main()
{ printf(“\n*s1=%15s*”,”chinabeijing”);
printf(“\n*s2=%-5s*”,”chi”);
}
A)*s1=chinabeijing□□□*
S2=**chi*
B)*s1=chinabeijing□□□*
*s2=chi□□*
C)*s1=*□□chinabeijing*
*s2=□□chi*
D)*s1=□□□chinabeijing*
*s2=chi□□*
7.已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的描述是:
A)整形变量的输出格式符只有%d一种;
B)%x是格式符的一种,它可以适应与任何一种类型的数据;
C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的
D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度。
8.以下C程序的运行结果是:
#include
int main()
{long y=-43456;
printf(y=%-8ld\n”,y);
printf(y=%-08ld\n”,y);
printf(y=%08ld\n”,y);
printf(y=%+8ld\n”,y);
return 0;
9. 以下程序运行的结果是: #include
printf(“y=%3o\n ”,y); printf(“y=%8o\n ”,y); printf(“y=%#8o\n ”,y); return 0;
10. 以下程序运行的结果是: #include
{ long y=23456;
printf(“y=%3x\n ”,y); printf(“y=%8x\n ”,y); printf(“
y=%#8x\n ”,y); return 0; }
11. 若x,y 均定义为int 型,z 定义为double 型,以下不合法的scanf 函数调用语句是: A) scanf(“%d%lx,%d ”,&x,&y,&z); B) scanf(“%2d*%d%lf ”,&x,&y,&z); C) scanf(“%x%*d%o ”,&x,&y);
D) scanf(“%x%o%6.2f ”,&x,&y,&z);
12. 如有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10、20、A 、B ,当从第一
列开始输入数据时,正确的数据输入方式为: int a1,a2;char c1,c2;
scanf (“%d%c%d%c ”,&a1,&c1,&a2,&c2);
A)10A□20B<回车> B)10□A□20□B<回车>
B)10A□20B<回车> D) 10A20□B<回车>
13.已有定义int x;float y;且执行scanf(“%3d%f”,&x,&y);语句,若从第一列开始输入
数据12345□678<回车>,则x的值为(【1】)y的值为(【2】)
【1】:A) 12345 B)123 C)45 D)345
【2】:A)无定值 B)45.000000 C)678.000000 D)123.000000
14.根据以下定义语句和数据的输入方式,scanf语句的正确形式应为:
已有定义:float f1,f2;
数据的输入方式:4.52<回车>
3.5<回车>
A)scanf(“%f,%f”,&f1,&f2);
B) scanf(“%f%f”,&f1,&f2);
C) scanf(“%3.2f %2.1f”,&f1,&f2);
D) scanf(“%3.2f%2.1f”,&f1,&f2);
15.阅读下列程序,当输入数据的形式为25,13,10<回车>,程序的输出结果为:
#include
int main()
{int x,y,z;
scanf(“%d%d%d”,&x,&y,&z);
printf(“x+y+z=%d\n”,x+y+z);
return 0;
}
A)x+y+z=48 B) x+y+z=35
C) x+z=35 D)不确定值
16.设有以下程序:
#include
int main()
{char c1,c2,c3,c4,c5,c6;
scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);
c5=getchar();
c6=getchar();
putchar(c1);
puchar(c2);
printf(“%c%c\n”,c5,c6);
return 0;
}
若运行时从键盘输入数据:
abc<回车>
defg<回车>则输出的结果是:
A)abcd B)abde C)abef D)abfg
17.以下针对scanf函数的叙述中,正确的是:
A)输入项可以为一实型常量,如scanf(“%f”,3.5);
B)只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);
C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如
scanf(“%4.2f”,&f);
D)当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);
18.根据下面的程序及数据的输入方式和输出方式,程序中输入语句的正确形式应该为:#include
int main()
{ char ch1,ch2,ch3;
输入语句;
printf(“%c%c%c”,ch1,ch2,ch3);
return 0;
}
输入形式:A□B□C<回车>
输出形式:A□B
A)scanf(“%c%c%c”,&ch1,&ch2,&ch3);
B)scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);
C)scanf(“%c %c %c”,&ch1,&ch2,&ch3);
D)scanf(“%c%c”,&ch1,&ch2,&ch3);
19.有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,
c的值为2,从键盘输入数据的正确形式应当是:。
A)132<回车> B)1,3,2<回车>
C)a=1□b=3□c=2<回车> D)a=1,b=3,c=2<回车>
20.以下不符合C语法的赋值语句是:。
A)m=(2+1,m=1); B) m=n=0;
C)m=1,n=2 D)n++;
21.以下能正确定义整型变量a,b,c并为其赋初值5的语句是:。
A)int a=b=c=5; B) int a,b,c=5;
C)a=5,b=5,c=5; D)a=b=c=5;
22.已知ch是字符型变量,下面不正确的赋值语句是:。
A)ch=’a+b’; B) ch=’\0’; C)ch=’7’+’9’;
D)ch=5+9;
23.已知ch是字符型变量,下面正确的赋值语句是:
A)ch=’123’; B)ch=’\xff’; C)ch=’\08’;
D)ch=”\”;
24.若有以下定义,则正确的赋值语句是:。
int a,b; float x;
A) a=1,b=2, B)b++; C)a=b=5 D)b=int(x);
25.设x,y均为float型变量,则以下不合法的赋值语句是:。
A)++x; B)y=(x%2)/10; C)x*=y+8; D)x=y=0;
26.设x,y,z为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x,y,z的值分别
27.设有说明:double y=0.5,z=1.5;int x=10;则能够正确使用C语言库函数的赋值语句
是:。
A)z=exp(y)+fabs(x);
B)y=log10(y)+pow(y);
C)z=sqrt(y-z);
D)x=(int)(atan2((double)x,y)+exp(y-0.2));
程序分析题:
1、以下程序运行的结果是:。
#include
int main()
{short i;
i=-4;
printf(“\ni:dec=%d,oct=%o,hex=%x,usigned=%u\n”,i,i,i,i);
return 0;
}
2、以下程序运行的结果是:。
#include
int main()
{printf(“*%f,%4.3f*\n”,3.14,3.1415);
return 0;}
3、以下程序运行的结果是:
#include
int main()
{char c=’x’;
printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%c\n”,c,c,c,c);
return 0;
}
4、已有定义int d=-2;执行以下语句后,输出的结果是。
printf(“*d(1)=%d,d(2)=%3d,d(3)=%-3d*\n”,d,d,d);
printf(“*d(4)=%o,d(5)=%7o,d(6)=%-7o*\n”,d,d,d);
5、已有定义int d=-2;执行以下语句后,输出的结果是。
printf(“*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n”,d,d,d);
printf(“*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n”,d,d,d);
6、已有定义float d1=3.5,d2=-3.5;执行以下语句后,输出的结果是。printf(“*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\n”,d1,d1,d1);
printf(“*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\n”,d2,d2,d2);
7、以下程序输出的结果是:。
#include
int main()
{ int x=1,y=2;
printf(“x=%d y=%d * sum *=%d\n”x,y,x+y);
printf(“10 Squared is :%d\n”,10*10);
return 0;
}
8、以下程序输出的结果是:。
#include
int main()
{int x=10;float pi=3.1416;
printf(“(1)%d\n”,x);
printf(“(2)%6d\n”,x);
printf(“(3)%f\n”,56.1);
printf(“(4)%14f\n”,pi);
printf(“(5)%e\n”,568.1);
printf(“(6)%14e\n”,pi);
printf(“(7)%g\n”,pi);
printf(“(8)%12g\n”,pi);
return 0;
}
9、以下程序输出的结果是:。
#include
int main()
{int a=123.456;float b=8765.4567;
printf(“(1)%f\n”,a);
printf(“(2)%14.3f\n”,a);
printf(“(3)%6.4f\n”,a);
printf(“(4)%lf\n”,b);
printf(“(5)%14.3lf\n”b);
printf(“(6)%8.4lf\n”,b);
printf(“(7)%.4f\n”,b);
return 0;
}
10、以下printf语句中*号的作用是【1】,输出结果是【2】
#include
int main()
{int i=1;
printf(“##%*d\n”,i,i);
i++;
printf(“##%*d\n”,i,i)
i++;
printf(“##%*d\n”,i,i)
return 0;
}
11、以下printf语句中负号号的作用是【1】,输出结果是【2】#include
int main()
{int x=12;double a=3.1415926;
printf(“%6d##\n”,x);
printf(“%-6d##\n”,x);
printf(“%14.10lf##\n”,a);
printf(“%-14.10lf##\n”,a);
return 0;
}
12、以下程序运行的结果是:。
#include
int main()
{int a=325;double x=3.1415926;
printf(“a=%+06dx=%+e\n”,a,x);
return 0;
}
13、以下程序运行的结果是:。
#include
int main()
{ int a=252;
printf(“a=%o a=%#o\n”,a,a);
printf(“a=%x a=%#x\n”,a,a);
return 0;
}
14、以下程序运行的结果是:。
#include
int main()
{ int n=100;char c;
float f=10.0; double x;
x=f*=n/=(c=48);
printf(“%d%d%3.1f%3.1f\n”,n,c,f,x);
return 0;
}
15、有以下程序:
#include
int main()
{int k=0;char c1=’a’,c2=’b’;
scanf(“%d%c%c”,&k,&c1,&c2);
printf(“%d,%c,%c\n”,k,c1,c2);
return 0;
}
若运行时从键盘输入:55 A B<回车>,则输出的结果是。
16、以下程序运行的结果是。
#include
int main()
{ int m=177;
printf(“%o\n”,m);
return 0;
}
17、以下程序运行的结果是。
#include
int main()
{ int n=0;
n+=(n=10);
printf(“%d\n”,n);
return 0;
}
18、若要下列程序的输出结果为8.00,则【】中应填入的是。#include
int main()
{ int k=2,m=5;
float s,x=1.2,y=[ ];
s=2/3+k*y/x+m/2;
printf(“%4.2f\n”,s);
return 0;
}
19、已知字母A的ASCII码值为65,以下程序输出的结果是:。
#include
int main()
{ char a,b;
a=’A’+’4’-‘3’;
b=’A’+’6’-‘2’;
printf(“a=%d,b=%c\n”,a,b);
return 0;
}
20、假设变量a和b均为整型,以下语句可以不借助任何变量把a和b中的值进行交换,请填空:
a+=[ ];b=a-[ ];a-=[ ];
21、假设变量a,b,c均为整型,以下语句借助中间变量t把a,b,c中的值进行交换,即把b 中值给a,把c中的值给b,把a中的值给c.例如:交换前,a=10,b=20,c=30,交换后,
a=20,b=30,c=10.请填空:
【】; a=b; b=c; 【】;
22、设有一输入函数scanf(“%d”,k);它不能使float类型变量k得到正确数值的原因是【1】未指明变量k的地址和【2】格式控制符与变量类型不匹配。
23、已有定义int a;float b,x;char c1,c2;为使a=3、b=6.5、x=12.6、c1=’a’、c2=‘A’,正确的scanf函数调用语句是【】,数据输入的形式应为【】。
24、若有以下定义和语句,为使变量c1得到字符‘A’,变量c2得到字符‘B’,正确的输入形式是:【】
char c1,c2;
scanf(“%4c%4c”,&c1,&c2);
25、执行以下程序时,若从第一列开始输入数据,为使变量
a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,正确的数据输入形式是
【】
#include
int main()
{ int a,b;float x,y;char c1,c2;
scanf(“a=%d b=%d”,&a,&b);
scanf(“x=%f y=%f”,&x,&y);
scanf(“c1=%c c2=%c”,&c1,&c2);
printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c”,a,b,x,y,c1,c2);
return 0;
}
编程题:
编写程序,从终端键盘输入圆的半径r,圆柱的高h,分别计算出圆的周长cl、圆的面积cs和圆柱的体积cvz。输出计算结果时要求有文字说明,并取小数点后2位数字。
编写程序,读入一个字母,输出与之对应的ASCII码,输入输出都要有相应的文字提示。
编写程序,从键盘输入两个整数,分别计算他们的商和余数,输出时,商要求保留两位小数,并对第三位四舍五入。
1-5:ABCBD,6-10:DDCDA,11-15:DAB(B)BD,16-20:BDADC,21-27:AABBBAD 填空:
1、i:dec=-4,otc=177774,hex=fffc,unsigned=65532
2、*3.140000,3.142*
3、c:dec=120,otc=170,hex=78,ASCII=x
4、*d(1)=-2*d(2)= □-2*d(3)=-2□*
*d(4)=177776*d(5)= □177776*d(6)=177776□*
5、*d(1)=-2*d(2)= □-2*d(3)=-2□*
*d(4)=fffe*d(5)= □□fffe*d(6)=fffe□□*
6、*d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=□3.500e+00*
*d(4)=-3.50000e+00*d(5)-3.50000e+00*d(6)=-3.5000e+00□*
7、x=1 y=2 *sum*=3
10 Squared is :100
8、1) 10
2) □□□□10
3)56.100000
4) □□□□□□3.141600
5)5.68100e+02
6) □□□3.14160e+00
7)3.1416
8) □□□□□□3.1416
9、1)123.456.000
2) □□□□□□□123.457
3)123.4560
4)8765.456700
5) □□□□□□8765.457
6)8765.4567
7)8765.4567
10、1)可以使同一输出语句中的输出宽度得以改变
2)##1
##2
##□□3
11、输出数据左对齐
2)□□□□12##
12□□□□##
□□3.141592600##
3.141592600□□##
12、a=+00325□□□X=+3.14159e+00
13、a=374□□a=0374
a=fa□□=0xfc
14、 2 48 20.0 20.0
15、55, ,A
16、261
18、 3.6
19、a=66,b=E
20、1)b 2)b 3)b
21、1)t=a 2)c=t
22、1)格式控制符与变量类型不匹配。
scanf语句的正确形式应该是:scanf(“%f”,&k);
2)位指明变量k的地址
23、1)scanf(“%d%f%f%c%c”,&a,&b,&c1,&c2);
2)3□6.5□12.6Aa<回车>
24、A□□□B□□□<回车>
25、a=3□b=7x=8.5□y=71.82c1=A□c2=a<回车>
顺序结构选择结构和循环结构的程序设计典型例题分析与解答
顺序结构、选择结构和循环结构的程序设计典型例题分析与解答 1 在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构 【分析】能用1个条件,控制某个操作做或不做的选择结构是单分支结构;能用1个条件,控制从2个操作中选择一个操作执行的选择结构是双分支结构;能用n(n>l)个条件,控制从n+ l个操作中选择一个操作执行的选择结构是多分支结构。【答案】多分支 2 在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。 【分析】当型循环结构是先判断控制循环的条件,条件成立,执行循环体;条件不成立,则退出循环体。次数型循环结构也是先判断是否达到循环次数,没有达到循环次数,执行循环体;达到循环次数的,退出循环。只有直到型循环结构才是先执行循环体,然后再判断控制循环的条件,如果条件成立,进行循环;条件不成立,退出循环。 【答案】直到型 3 使用“getchar( )”函数时,程序的开头必须写一条包含命令为____________。 【分析】凡是使用系统函数的程序,都要在程序的开头写一条包含命令,包含命令中的“头函数.h”是一个文件,其中有关于该系统函数的定义。系统函数“getchar( )”是在名为“stdio.h(标准输入输出函数)”的头函数文件中定义的。【答案】#include"stdio.h"或#include<stdio.h> 4 执行输入语句“scanf("x=%c,y=%d",&x,&y);”,要使字符型变量X的值为'A'、整型变量y的值为12,则从键盘上正确的输入是( ) ①'A'/②A/③x=A/ ④x=A,y=12/ 12/ 12/ y=12/ 说明:备选答案中的"/"表示回车换行键 【分析】输入语句的格式控制符串中的“x=”、“,”、“y=”都是非格式控制符, 在输入时必须原样位置输人,所以只有备选答案④才符合这个要求。【答案】④ 5 设有下列程序段,则执行该程序段后的输出是( ) int i=012; float f=1.234E-2; printf("i=%-5df=%5.3f",i,f); ... ①i=__012f=1.234 ②i=10___f=0.012 ③10___O.012 ④___100.012 注:答案中的_代表一个空格。 【分析】输出语句的格式控制符串中的“i=”、“f=”都是非格式控制符,在输出时必须原样,原位置输出,所以只有备选答案①和②才符合这个要求;格式控制符“%-5d”的格式控制是数据左对齐、宽度为5的整型数据,备选答案①中的数据是右对齐的;此外,该答案中的实数“1.234E-2”应该代表“0.01234”,而不是“1.234”。只有备选答案②符合题意。【答案】② 6 在Turbo C的主屏幕中,将当前编辑的源程序以原名存盘,可以选用___________菜单项,也可以直热键________。 【分析】如果选用“File/Save”菜单项,或者使用热键(f12),当前编辑的源程序将以原来的文件名存盘;如果选用“File /Write to”,当前编辑的源程序将以新的文件名存盘。 【答案】File/Save F2 7 下列各种选择结构的问题中,最适合用if-else语句来解决的是( ) ①控制单个操作做或不做的问题 ②控制两个操作中选取一个操作执行的问题 ③控制三个操作中选取一个操作执行的问题 ④控制10个操作中选取一个操作执行的问题 【分析】if-else语句是专门解决“双分支结构”的,而“双分支结构”的问题就是用单个条件控制从两个操作中选取一个操作来执行的问题。 【答案】② 8 下列程序是输入一个小写字母,转换成对应大写字母的后一个字母输出。例如:'a'将转换成’B’、…、‘y’将转换成’Z’,其中的’Z’将转换成’A’。请填写程序中所缺少的语句。 main() {char ch ; scanf(”%c”,&ch〕; ch=ch- 32+1; ___________________; printf("%c\n",ch); } 【分析】分析程序库中的“ch=ch- 32+ 1;”语句,可知是将字符型变量 ch中的小写字母转换成对应的大写字母(- 32)的后一个字母(+ l)。如果ch中的字母是' a'、' b'、··,'y',转换结果都不会出错,但是,如果 ch中的字母是'Z',则-32后是大写字母'Z',再+l后将不是大写字母了。为了使其转换成'A',需要用一个单分支结构来实现:如果ch的值等于'Z'+ l,则硬性将 ch的值改成'A'。完成这个任务的语句是一条单分支语句,正是所缺少的语句。 【答案】 if (ch=='Z'+l) h='A'; 9不能正确计算下列分段函数的程序段是_________ |-1 x<0 y=|0 x=0 x>0 ① switch(x< 0)② if(x> 0) {case1:y=-1;break; y=1; case 0:switch(x==0)else {casel:y=0;break;if(x==0) case 0: y= l;y=0 } else } &ny=-l ③ y= l;④ y= l; if(x==0)if(x<0) y=0; y =-l; else else y=- l; if(x== 0) y=0; 【分析】先来分析备选答案①:表达式“x<0”的值只有两种可能性,成立值为1、不成立值为on如果“x<0”的值为 1(即 x< 0),则执行“easel:”后的语句“y=-l”后,退出 switch语句,符合分段函数要求。如果“x<0”的值为0(即x>=0),则执行“case 0:”后的switch语句。该switch语句的表达式是“x==0”,结果也有两种:成立为1、不成立为0.如果“x==0”的值为1(即x=0),则执行“case l:”后的语句“y=0”后,退出 switch语句,符合分段函数要求。如果“x==0”的值为0(即x>0),则执行“case 0:”后的语句“y=1”,也符合分段函数要求。再分析备选答案②:这是标准的用嵌套双分支结构来实现三分支的分段函数,结果显然是能求解分段函数的。分析备选答案③:双分支语句的条件是“x==0”,条件成立时,y值为0,符合分段函数的要求,条件不成立时(包含x>0和x<0两种情况),结果y值为-l,显然不符合分段函数的要求,所以本题要选该答案。至于备选答案④,是能正确计算分段函数的,首先置y为1;接着用双分支结构处理“x<0”和“x>=0”的两种情况:前者使得y值为一l;后者再执行一个单分支结构,如果“x==0”则使y值为0,否则不改变y值,保持y的原值1,符合分段函数的要求。 【答案】③ 10 三种循环语句都能解决循环次数已经确定的次数型循环,其中__________循环语句最适合。 【分析】当“for(表达式 1;表达式 2;表达式 3)语句;”中的表达式1为:整型变量 k=l;表达式 2为:整型变量 k<= n;表达式 3为:整型变量 k++;则这个 for循环就是次数为n次的标准次数型循环结构。 【答案】for 11执行下列程序段后的输出是() x=l; while(x<=3) x++,y=x+++x; printf("%d,%d",x,y); ① 6,10 ②5,8 ③4,6 ④3,4 【分析】我们可以使用逐步记录运行结果的方法来获得输出结果,记录如下: x=1; 进入循环,条件满足执行循环体:计算x+十得x为2,计算y=x+++x,得y为4、x为3; 继续循环,条件满足执行循环体:计算x+十得x为4,计算y=x+++x,得y为8、x为5; 继续循环,条件不满足退出循环; 输出x和y的值为5,8。 【答案】② 12 执行下列程序段,其中的do-while循环一共执行_次。 static int x; do x+=x*x; while (x); 【分析】对静态型变量,不赋初值也有值,对整型变量,其值为 0。执行循环语句 do-while 的循环体,x+=x* x是x=x+(x*
顺序结构程序设计习题
一维数组程序设计习题 1、【逆序输出问题】 题目描述:按照顺序从键盘读入十个数据,以逆序方式输出。 输入数据:1 2 3 4 5 6 7 8 9 10 输出结果:10 9 8 7 6 5 4 3 2 1 2、【数组元素的移动问题】 题目描述:将元素个数为10的数组a中的第一个元素移到数组末尾,其余数据依次往前平移一个位置,请编程实现。 输入数据:1 2 3 4 5 6 7 8 9 10 输出结果:2 3 4 5 6 7 8 9 10 1 3、【斐波那契数列问题】 题目描述:有这样一种数列:1、1、2、3、5、8、……,这个数列的特点是:第1、2两个数为1,1,从第3个数开始,该数是其前面两个数之和。这种数列被称为Fibonacci(斐波那契)数列,请编程输出斐波那契数列的前20项(用一维数组完成)。 输出结果:1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 4、【求和问题】 题目描述:编程计算并输出S=∑ = 10 1 i i i y x 其中,Xi的值为1、8、5、7、2、99、34、67、2589、19,Yi的值为2、22、14、3、7、9、11、8、132、30。 输出结果:344402 5、【排序问题】 题目描述:从键盘输入10个数,将它们按照从小到大的顺序输出。 输入数据:72 98 79 66 39 95 96 25 5 37 输出结果:5 25 37 39 66 72 79 95 96 98 6、【进制转换问题】 题目描述:请编程将一个从键盘输入的十进制整数转化为二进制数输出。 输入格式:32570 输出格式:111111********* 7、【圆环找数问题】 题目描述:有一组数,其排列形式如下:11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,15,8且尾部8和头部11首尾相连,构成环形的一组数,编程找出相邻的4个数,其相加之和最大,并给出它们的起始位置。 输出结果:58 19 8、【质数问题】 题目描述:用筛选法求100之内的质数,要求每行输出5个数据。 输出结果:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
C语言程序设计程序填空题库及答案
程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#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 单选题 1、下列语言中不属于计算机语言的三大类的是(C)。 A.机器语言 B.汇编语言 C.脚本语言 D.高级语言 2、下列说法中不正确的是(C) A.计算机语言大致可分为三大类,即机器语言、汇编语言和高级语言 B.C语言是一种通用的、过程式的编程语言,具有高效、灵活、可移植等优点 C.C语言属于汇编语言 D.高级语言比汇编语言更贴近于人类使用的语言,易于理解、记忆和使用 3、以下开发工具中不属于主流的开发工具的是(B) A.Visual Studio B.Xcode C.Code::Block D.Eclipse 4、下列选项是对主流开发工具的介绍,其中错误的是(B) A.Visual Studio支持C/C++、C#、F#、VB等多种程序语言的开发和测试 B.Code::Block是一个免费的跨平台IDE,支持C、C++和Fortan程序的开发 C.Eclipse是一种被广泛使用的免费跨平台IDE,最初由IBM公司开发 D.Vim是一款功能非常强大的IDE ( 和其他IDE不同的是,Vim本身并不是一个用于开发计算机程序的IDE,而是一款功能非常强大的文本编辑器,它是UNIX系统上Vi编辑器的升级版。) 5、下列选项中,不属于开发一个C语言应用程序的具体实现步骤的是(A) A.启动开发工具 B.添加源文件 C.编写代码 D.运行程序 6、下列选项中,关于main()函数叙述不正确的是(C) A.一个完整的C语言程序中,有且只能有一个main()函数 B.main()函数是程序的主入口,程序总是从main()函数开始执行 C.如果没有声明main()函数,程序将从第1行开始执行 D.main()函数可以有返回值,也可以没有返回值 7、下面程序中,合法的选项是(D) A.#includeint main() { printf("hello world\n"); return 0; } B.#includeint man() { printf("hello world\n"); return 0; } C.#includeint main() { printf("hello world\n") return 0; } D.#includeint main() { print("hello world\n"); return 0; } 8、下面程序中,运行结果为“1,2”的是(A) A.#includeint main() { int a = 1; int b = 2; printf("%d %d\n",a,b); return 0; } B.#includeint main() { int a = 1; int b = 2; printf("%d,"a); printf("%d\n",b); return 0; } C.#includeint main() { int a = 1, b = 2; printf("%d,,%d\n",a,b); return 0; } 顺序结构程序设计练习题 一、选择题 1、下面正确的赋值语句是()。A)x+y=30B)y=π*r*r C)y=x+30D)3y=x 2、为了给x,y,z三个变量赋初值1,下面正确的赋值语句是()A)x=1:y=1:z=1B)x=1,y=1,z=1C)x=y=z=1D)xyz=1 3、赋值语句:a=123+left("123456",3)执行后,a变量中的值是。A)"12334"B)123C)12334D)246 4、在Visual Basic中,下列____程序行是正确的。A)X=Y=5B)A+B=C^3C)Y=1&Y=Y+1D)I=X10” 5、假定X是一个数值型变量,那么由函数组成的表达式INT(X/2)=X/2,作用是____。 A)用于测试X是否偶数B)返回一个整数C)返回一个奇数D)用于测试X是否整数 6、在Visual Basic中,下列____单词用于注释语句。A)Rem B)End C)Else D)Loop 7、inputBox函数反回值的类型为()。A)数值B)字符串C)变体D)数值或字符串(视输入的数据而定) 8、如果在立即窗口中执行以下操作: a=8:b=9 print a>b 则输出结果是()。A)–1B)0C)False D)True 9、语句Print Format(32548.5,"000,000.00")的输出结果是()A)32548.5B)32,548.5C)032,548.50D)32,548.50 10、为了把焦点移到某个指定的控件,所使用的方法是()A)SetFocus B)Visible C)Refresh D)GetFocus 11、在窗体(Name属性为Form1)上画两个文本框(其Name属性分别为Text1和Text2)和一个命令按钮(Name属性为Command1),然后编写如下两个事件过程: Private Sub Command1_Click() a=Text1.Text+Text2.Text Print a End Sub Private Sub Form_Load() Text1Text="" Text2Text="" End sub 程序运行后,在第一个文本框(Text1)和第二个文本框(Text2)中分别输入123和321,然后单击命令按钮,则输出结果为()。 A)444B)321123C)123321D)132231 12、在VB中,下列()语句可以改变变量A的值:A)a=a+1B)t=A C)print a+1D)b=a+1 13、在VB中,下列()语句是错误的:A)PRINT"x="&x B)PRINT"X=";X C)PRINT A+1D)PRINT"X="+X 14、下列VB程序段运行后,变量X,Y的结果为(): A=256:X=INT(A/100):Y=INT(A/10)-X*10A)65B)652C)25D)665 15、.在VB中,下列()表达式能够表达[10,50]之间的随机整数: A)INT(10*RND)+40B)40*INT(RND(10+40))C)10+INT(41*RND)D)INT(10*RND)*(10+40) 16、在VB中,要交换变量A和B的值,应用的语句组是(): A)A=B:B=A B)C=A:B=A:B=C C)A=B:B=C:C=A D)C=A:A=B:B=C 17、在某个VB程序中,变量A的值为A=3.14,则应定义为()类型:A)integer B)single C)boolean D)string 18、下列VB程序运行后,变量A、B的值为():A)-6,5B)-5,4C)5,-6D)4,-5 A=4:B=-5:A=A+1:B=B-1:M=A:A=B:B=M 19、在VB中,欲显示静态的文本,可采用下列():A)命令按钮B)标签控件C)文本框D)定时器控件 20、下列关于Print方法的说法中,()不正确: A)Print方法具有计算和输出的双重功能B)使用Print方法输出数据时,前面的窗体名称可以省略 C)Print方法对于字符串是原样输出,但不包括定界符双引号D)Print方法在窗体的Load事件下也可以运行 21、下面程序运行结果为(): Dim a as single,b as single,c as single A)123B)321C)231D)632 A=1:b=2:c=3:Let b=a*b*c:Let a=b/(c*2):Let c=a*c:Let b=b/3:Print a,b,c 22、设有语句x=inputbox(“输入数值”,“0”,“示例”),程序运行后如果从键盘上输入数值10并按回车键,则下列叙述正确的是() A)变量X的值是数值10B)在INPUTBOX对话框标题栏中显示的是“示例”C)0是默认值D)变量X的值是字符串“10” 23、要使控件与框架捆绑在一起,以下操作正确的是() A)在窗体不同位置上分别画一框架和控件,再将控件拖到框架上B)在窗体上画好控件,再画框架将控件框起来 C)在窗体上画好框架,再在框架中画控件D)在窗体上画好框架,再双击工具箱中的控件 24、要使文本框获得输入焦点,则应采用文本框控件的哪个方法()A)GotFocus B)LostFocus C)KeyPress D)SetFocus 25、能够获得一个文本框中被选取文本的内容的属性是()A)Text B)Length C)SelText D)SelStart 26、要使标签能够显示所需要的东西,则在程序中应设置其哪一属性的值()A)Caption B)Text C)Name D)AutoSize 27、在运行阶段,要在文本框TEXT1获得焦点时选中文本框中所有内容,对应的事件过程是 A)Private Sub Text1_GotFocus() Text1.SelStart=0 Text1.Sellength=Len(Text1.Text) End Sub B)Private Sub Text1_LostFocus() Text1.SelStart=0 Text1.Sellength=Len(Text1.Text) End Sub C)Private Sub Text1_Change() Text1.SelStart=0 Text1.Sellength=Len(Text1.Text) End Sub D)Private Sub Text1_SetFocus() Text1.SelStart=0 Text1.Sellength=Len(Text1.Text) End Sub C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后( #include 面向对象程序设计期末综合练习二(填空题) 填空题 1.C++ 语言是在 _________语言的基础上发展起来的。 2.C++ 语言的编译单位是扩展名为 __________的 __________文件。 3.行尾使用注释的开始标记符为 __________ 。 4.多行注释的开始标记符和结束标记符分别为__________ 和 __________。 5.用于输出表达式值的标准输出流对象是_________。 6.用于从键盘上为变量输入值的标准输入流对象是________。 7.一个完整程序中必须有一个名为 ________的函数。 8.一个函数的函数体就是一条 _________语句。 9.当执行 cin 语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。 10.在 C++程序中包含一个头文件或程序文件的预编译命令为__________。 11.程序中的预处理命令是指以______字符开头的命令。 12.一条表达式语句必须以 ______ 作为结束符。 13.在#include 命令中所包含的头文件,可以是系统定义的头文件,也可以是 ________定义的头文件。 14.使用 #include 命令可以包含一个头文件,也可以包含一个______文件。 15.一个函数定义由 ________和 ________两部分组成。 16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。 17. C++头文件和源程序文件的扩展名分别为______和 ______。 18.程序文件的编译错误分为 ________和 ________两类。 19.当使用 _______保留字作为函数类型时,该函数不返回任何值。 20.当函数参数表用 ______保留字表示时,则表示该参数表为空。 21 .从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______ 个参数。 22.当执行 cout 语句输出 endl 数据项时,将使 C++显示输出屏幕上的光标从当前位置移动到 ________的开始位置。 23.假定 x=5,y=6,则表达式 x++*++y 的值为 __________ 。 24.假定 x=5,y=6,则表达式x--*--y的值为__________。 25.假定 x=5,y=6,则执行表达式 y*=x++ 计算后, x 和 y 的值分别为 __________和 __________ 。 26.假定 x=5,y=6,则执行表达式 y+=x-- 计算后, x 和 y 的值分别为 __________和 __________ 。 27.C++ 常数 0x145 对应的十进制值为 __________。 28.C++ 常数 0345 对应的十进制值为 __________ 。 29.十进制常数 245 对应的十六进制的 C++表示为 __________。 30.十进制常数 245 对应的八进制的 C++表示为 __________ 。 31.signed char类型的值域范围是________至__________之间的整数。 32.int和float类型的数据分别占用_________和__________个字节。 33.float和double类型的数据分别占用_________和________个字节。 34.bool和char类型的数据分别占用_________和________个字节。 35.unsigned short int和int类型的长度分别为_________和________。 《C语言程序设计》综合练习题与答案 一、简要问答下列问题 1.什么是源程序? 2.C语言源程序的编译过程是怎样的? 3.简述C语言的特点 4.C/C++程序都是由函数组成的,其中最主要的、不可缺少的函数是哪一个?举例说明该函数的结构。 5.函数的返回值是通过什么语句来实现的,它的格式是什么? 6.在编写C程序时,为什么要把库函数的头文件包含到用户源程序中?如何把用户的头文件包含到用户源程序? 7.在计算机中,存储的数据为什么要分成多种不同的数据类型? 8.什么是常量?什么是变量? 9.C语言的五种基本数据类型有哪些?它们的关键字和所占的字节数分别是什么? 10.判断标识符是否合法的三条规则是什么? 11.什么是C语言的关键字?关键字对标示符有何影响? 12.全局变量和局部变量有什么区别? 13.什么是空语句,什么是语句块? 14.结构化程序设计的三种基本结构是什么? 15.三种循环语句各有什么特点? 16.什么叫多重循环结构? 17.Continue语句与break语句有什么区别? 18.字符与字符串有什么区别?‘b’与“b”相同吗? 19.什么是数组?一维数组的定义形式是怎样的? 20.字符串的结束标记是什么? 21.什么是按位操作?C语言对按位操作有哪些要求? 22.什么是指针?指针的两个操作符表示什么意义? 23.指针和数组有什么关系? 24.指针有那几种算术运算?说明指针变量的算术运算与一般变量的算术运算有何区别? 25.函数是由哪三部分组成的?函数定义的一般形式是什么? 26.函数原型是什么情况下使用?有什么作用? 27.形参和实参有什么关系,函数的两种调用方式是什么? 28.什么是函数的递归调用? 29.什么是函数指针?说明定义函数指针的一般形式。 30.什么是内部函数?什么是外部函数? 31.C语言的四种用户定义数据类型是什么? 32.C系统提供的三种主要预处理功能是什么? 33.什么是文件包含? 34.什么是文件?什么是流? 第3章顺序 一、单选题: 1.己知int k,m=1;执行语句k=-m++;后k的值是( A)。(提示:负号与自加运算符同级,结合方向从右向左) A)-1 B) 0 C)1 D)2 2.若变量a, b已正确定义,且a,b均已正确赋值,下列选项中合法的语句是( B) A) a=b B)++a; C) a+=b++=1; D)a=int(b); (提示:a=b 只是表达式非语句; b++是个表达式)3.若有定义int x=4;则执行语句 x + = x * = x + 1;后,x的值为( C )。 A)5 B)20 C)40 D)无答案 4.若有定义和语句: int s,p; s=p=5; p=s++,++p,p+2,p++;则执行语句后 p的值是( C) A)9 B)8 C)7 D)6 5.若有定义:int a,b;则表达式 a=4,b=3,a+b+2,a++,a+b+2的值为( C)。 A) 12 B)11 C)10 D)无答案 6.若有定义:float a=3.0,b=4.0,c=5.0;则表达式 1/2*(a+b+c)的值为( C )。 A)6.0 B)6 C)0.0 D)无答案 7.以下程序段的输出结果是( C )。(提示:a当约束过严时,约束失效。按自由格式输出。) int a=1234; printf("%2d\n",a); A)12 B)34 C)1234 D)提示出错,无结果 8.下列程序段的输出结果是(C)。 int a=1234; float b=123.456; double c=12345.54321; printf("%2d,%3.2f,%4.1f",a,b,c); A)无输出 B)12, 123.46, 12345.5 C)1234,123.46,12345.5 D)1234,123.45, 1234.5 9.设x, y均为整型变量,且x=8, y=5,则以下语句的输出结果是(D)。 printf("%d,%d\n",x--,++y); A)8,5 B)7,5 C) 7,6 D) 8,6 10.以下程序的输出结果是( A )。 void main() { int a=20,b=10; printf("%d,%%d\n",a+b,a-b); } A) 30,%d B)30,10 C)30,%10 D)以上答案均不正确(%%d中第一个%后面的表示字符)11.下列程序的运行结果是(A)。 void main() { float x=2.5; int y; y=(int)x; printf("x=%f,y=%d",x,y);} A) x=2.500000,y=2 B)x=2.5,y=2 C)x=2,y=2 D) x=2.500000,y=2.000000 12.己知int k=10 , m=3,n;则下列语句的输出结果是(B)。 printf("%d\n",n=(k%m,k/m)); 一、选择题 1.结构化程序设计的 3 种结构是 (D) A)顺序结构、选择结构、转移结构 B)分支结构、等价结构、循环结构 C)多分支结构、赋值结构、等价结构 D)顺序结构、选择结构、循环结构 2.以下叙述中正确的是 (C) A)C 语言比其他语言高级 B)C 语言可以不用编译就能被计算机识别执行 C)C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C 语言出现的最晚,具有其他语言的一切优点 3.C语言中用于结构化程序设计的 3 种基本结构是 (A) A)顺序结构、选择结构、循环结构 B)if,switch,break C)for,while,do-while D)if,for,continue 4.C语言中最简单的数据类型包括(B) A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)字符型、实型、逻辑型 5.若变量已正确定义并赋值,以下符合 C 语言语法的表达式是 (B) A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b 6.下列可用于 C 语言用户标识符的一组是(B) A)void, define, WORD B)a3_b3, _123,Car C)For, -abc, IF Case D)2a, DO, sizeof 7. C语言中运算对象必须是整型的运算符是(A) A)%= B)/ C)= D)<= 8.若变量 a,i已正确定义,且i已正确赋值,合法的语句是(B) A)a= =1 B)++i ; C)a=a++=5; D)a=int (i ); 9.已知 int t=0; while(t=1) {...} 则以下叙述正确的是 (B) A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 10.若变量已正确说明为float型,要通过语句 scanf("%f%f%f",&a,&b,&c); 给 a 赋予 10.0 , b 赋予 22.0 , c 赋予 33.0 ,下列不正确的输入形式是 (B) A)10<回车 >22<回车 >33<回车 > B)10.0,22.0,33.0<回车> C)10.0< 回车 >22.0< 空格 >33.0< 回车 > D)10<<空格 >>22<回车 >33<回车 > 11.有如下程序: main() { int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf("a=%d,b=%d\n",a,b); } 该程序的输出结果是 (A) A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2 12.有以下程序 main() 一、填空共219题 第1题题号:422 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【1】 . Struct stud { char num[6]; int s[4]; double ave; } a,*p; 答案: 1). 22 第2题题号:533 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】. for (x=0,y=0;y!=123&&x<3;x++) scanf ("%d",&y); 答案: 1). 3 第3题题号:496 静态变量和外部变量的初始化是在【1】阶段完成的,而自动变量的赋值是 在【2】时进行的. 答案: 1). 编译 2). 函数调用 第4题题号:96 已知a=13,b=6, a&b的十进制数值为【1】. 答案: 1). 4 第5题题号:398 程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次. 答案: 1). 0 第6题题号:651 设w=5;w+= -2;则w的值为【1】. 答案: 1). 3 第7题题号:258 下面程序段的输出结果是【1】. int a=12; a=a&0377;pritnf("%d\n",a); 答案: 1). 12 第8题题号:457 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是【1】. 答案: 1). 1 第9题题号:402 设a取二进制数00101101,若想通过a^b运算使a的高4位取反,低4位不变,则b的 二进制数是【1】. 答案: 1). 11110000 第10题题号:311 若所用变量均已正确定义,则执行下面程序段后的值是【1】. for(i=0 ; i<2 ; i++ ) printf("YES"); printf("\n"); 答案: 1). YESYES C语言练习题 (所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参 考使用) 1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 #include 2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。 #include 第八讲:顺序结构程序设计举例 所谓的顺序结构就是从头到尾一步步按部就班的执行下去,不会中途出现放弃或者跳转的情况。利用这样的思想实现的程序我们称之为顺序结构程序。在前面学习了许多知识点之后我们就可以开始最基本的顺序结构程序的设计了。 8.1 顺序结构 所谓的顺序结构可以用一个成语形容叫“按部就班”。任何事情都遵循着先做什么,再做什么的思想进行。这样的结构是我们日常生活中最常见的结构。在顺序结构中当一件事情开始后就再也不会停下,直到最后一步完成,整件事情做完为止,中途不会有放弃或者选择性放弃的过程。 8.2 经典算法—数据交换 很多语言的程序设计大多数都是从数据交换这个最经典的算法开始的,所谓的数据交换是将两个同等性质的物质进行对换,例如有两个整数a和b,a = 1,b = 2,在交换之后,使得a = 2,b = 1。 交换的算法是由于变量的性质所决定的,由于变量在同一时刻只能够存储一个数据,因此我们不能直接使用 a = b,b = a的方式对数据进行交换。此时我们就需要想出一些方法,帮助程序实现最正确的交换。 对于任何的数据我们都可以采用“第三变量法”进行交换。所谓的“第三变量法”即借助第三个变量实现对数据的交换,例如对a和b的数据交换,就有: 接下来我们将通过如下示意图对“第三变量法”进行简单的介绍: b 在程序未执行交换前,a = 1,b = 2。在执行交换算法的过程中,首先执行“t = a;”一句,将a中的值1转移到t中暂存,接下来执行“a = b;”一句,将b之中的值2存放到变量a中,a中原先的1被覆盖;最后执行“b = t;”一句,将t中所暂存的原先a的值1存放到变量b中,b中原有的2被覆盖。此时 a = 2,b = 1,t = 1。 当然,读者也可以使用先暂存b的方式对a和b之中的数据进行交换。下面给出该案例的完整代码: [例] 使用“第三变量法”交换a和b之中的数据。 当然对于一些数值型的数据(所谓的数值型数据是指单纯的数字或者ASCII 码),我们也可以直接采用“算数交换法”进行交换。所谓的算数交换法是指利用数值型数据可进行算术运算的特性进行交换。以上例a与b的值交换为例,则有: 假设a = 1,b = 2。首先执行“a = a + b;”,此时a = a + b = 1 +2 = 3,而b = 2; 实验一顺序结构程序设计 一、实验目的 1. 掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。2 2. 学会使用有关算术运算符,以及包含这些运算符的表达式。 3. 掌握数据的输入输出方法,能正确使用各种格式转换符。 二、实验学时数 4学时 三、实验内容和步骤 1..启动TC 2.0编译系统,进入编辑界面,建立一个新文件。文件名自定。(要求每个学生建立一个自己的文件夹,每个同学的练习和作业的源程序命名形成系列,便于检查、查找和考核)。 利用一个小程序验证常量、变量的使用方法与特点,验证数据类型和表达式值的计算规则及其输出格式。 参考程序: main( ) { char c1,c2; c1=97;c2=98; printf(″%c,%c\n″,c1,c2); } (1)在此基础上加入以下printf语句,并运行。 printf(″%d,%d\n″,c1,c2); (2)将第二行改为以下语句,并运行。 int c1,c2; (3)将第三行改为以下语句,并运行。 c1=300;c2=400; 分别写出三次运行结果。 2.编程并调试运行 (1)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf 函数输出这两个字符。上机运行此程序,比较putchar和printf函数输出字符的特点。 (2)试编写程序,从键盘输入一个大写字母,要求改用小写字母输出。 3.写出下面程序的运行结果: 1)main() { int x=1,y=1,z=1; y=y+x; x=x+y; printf(″%d\n″,x); printf(″%d\n″,y); } 2) main()C语言程序设计教程第一章练习题题目
顺序结构程序设计练习题
C语言程序设计期末考试试题(含答案)
C语言程序设计期末练习填空题.docx
《C语言程序设计》综合练习题与答案
第3章顺序结构程序设计练习题及答案
C程序的设计复习题集带答案.docx
大学计算机C语言程序设计(填空题)
C语言程序设计练习题(含程序及参考答案)21182
第八讲:顺序结构程序设计举例
实验一 顺序结构程序设计