学习通网课C程序设计的答案(大学c程序设计同步网课)
本文目录一览:
- 1、在C语言中,在执行 char str[10]=”ch\nina” ; strlen(str) 的结果是( )。 A、5 B、6 C、7 D、9
- 2、c语言程序设计第三版课后答案完整的谁有
- 3、谁有《C程序设计》(第二版)课后答案?
- 4、求:C语言程序设计试卷及答案一份
- 5、c语言程序设计(何钦铭 颜晖 第三版)课后习题答案
在C语言中,在执行 char str[10]=”ch\nina” ; strlen(str) 的结果是( )。 A、5 B、6 C、7 D、9
Neusoft
《C语言程序设计》习题集
《C程序设计》习题集
第一章C语言基础知识
1.1 填空题稿中
1.要把高级语言编写的源程序转换为目标程序,需要使用
A) 编辑程序 B) 驱动程序 C) 诊断程序 D) 编译程序
2. 若有说明语句:int a,b,c,d=c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是陆敬李
A) scanf("%d%d%d",a,b,d); B) scanf("%d%d%d",a,b,d);
C) scanf("%d%d%d",a,b,d); D) scanf("%d%d%d",a,b,d);
3.以下选项中合法的用户标识符是______。
A) long B) _2Test C) 3Dmax D) A.dat
4.设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是______。
A) 6.500000 B) 6 C) 5.500000 D) 6.000000
5.已知i、j、k为int型变量,若从键盘输入:1,2,3回车,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。
A) scanf("%2d%2d%2d",i,j,k);
B) scanf(""%d %d %d",i,j,k);
C) scanf("%d,%d,%d",i,j,k);
D) scanf("i=%d,j=%d,k=%d",i,j,k);
6.C语言程序的执行,总是起始于()。
A) 程序中的第一条可执行语句
B) 程序中的第一个函数
C) main函数
D) 包含文件中的第一个函数
7.下列说法中正确的是()
A) C程序书写时,不区分大小写字母
B) C程序书写时,一行只能写一个语句
C) C程序书写时,一个语句可分成几行书写
D) C程序书写时每行必须有行号
8.若有说明语句:int a; float b;,以下输入语句正确的是()
A) scanf("%f%f",a,b);
B) scanf("%f%d",a,b);
C) scanf("%d,%f",a,b);
D) scanf("%6.2f%6.2f",a,b);
9.以下程序的输出结果是()
main( )
{ int x=11,y=11;
printf("%d%d\\n",x--,--y);
}
A) 11,11 B) 10,10 C) 10,11 D) 11,10
10.执行下面程序段,给x、y赋值时,不能作为数据分隔符的是()
int x,y;
scanf("%d%d",x,y);
A) 空格 B) Tab键 C) 回车 D) 逗号
11.执行下面程序时,欲将25和2.5分别赋给a和b,正确的输入方法是。
int a;
float b;
scanf("a=%d,b=%f",a,b);
A) 25□2.5
B) 25,2.5
C) a=25,b=5.5
D) a=25□b=2.5
12.英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为
A) 50 B) 66 C) 52 D) 68
13.以下定义语句中错误的是()。
A)inta=3,b=5;B)floatx1; x2;
C)charc1,c2,c3;D)doubley3, y4;
14.若将整数4和5赋给整型变量a和b,对于语句scanf("%d%d" , a,b);在从键盘输入数据时,正确的数据输入格式为()。
A)4,5B)45C)4:5D)4
15.若整型变量a和b的值分别为6和8,则下列语句printf("a=%d,b=%d",a,b); 的输出结果为()。
A)6, 8B)68C)a=6 b=8D)a=6, b=8
16.C语言中的字符常量是以()括起来的一个字符。
A)双引号B)单引号C)\……\D)……
17.C语言中的转义早迟字符\n的作用是()。
A)回车换行B)横向跳格
C)纵向跳至本列下行D)将光标移至本行行首
18.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为
A) 1.4B) 1C) 2.0D) 2
19.如果要把常量327存入变量a中,a可以定义成哪些类型?(多选)
A. intB. char
C. longD. float
20.下面哪个表达式的值为4.(单选)
A. 11/3B. 11.0/3
C. (float)11/3D. (int)(11.0/3+0.5)
includestdio.h
includemath.h
main( )
{int a=1,b=4,c=2;
float x=5.5,y=9.0,z;
z=(a+b)/c+sqrt((double)y)1.2/c+x;
printf("%f\n",z);
}
A).9.800000B).9.300000C).8.500000D).8.000000
21.main( )
{int x = 10, y = 3;
printf("%d\n",y=x/y);
}
A).0B).1C).3D).不确定的值
22.main( )
{int a;
printf("%d\n";(a=35,a4,a+5));
}
A).65B).20C).15D).10
23.已知小写字母a的ASCII码为97,大写字母A的ASCII码为65。以下程序
main()
{unsigned int a=32, b=66;
printf("%c\n", a+b);
}
的结果为:
A).66B).98C).bD).B
24.设有如下定义
int x=10,y=3,z;
则语句
printf("%d\n",z=(x%y,x/y));
的输出结果是
A).1B).0C).4D).3
25.defineSQR(X)XX
main()
{
int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
A).10B).1C).9D).0
26.define MAX(x, y) (x)(y)?(x):(y)
main()
{int a=1, b=2, c=3, d=2, t;
t=MAX(a+b, c+d)100;
printf("%d\n",t);
}
的运行结果为:
A).500B).5C).3D).300
27.以下程序的输出结果是
main()
{
int x=10,y=10;
printf("%d %d\n",x--,--y);
}
A).10 10B).9 9C).0 10D).10 9
28.语句:printf("%d",(a=2)(b= -2));的输出结果是
A).无输出B).结果不确定C).-1D).1
33、当c的值不为0时,能正确将c的值赋给变量a、b
A).c=b=a;
B).(a=c)||(b=c)
C).(a=c)(b=c)
D).a=c=b
29.能正确表示a和b同时为正或同时为负的逻辑表达式是
A).(a=0||b=0)(a0||b0)B).(a=0b=0)(a0b0)
C).(a+b0)(a+b=0)D).ab0
30.下面合法的赋值语句是
A) x+y=2002;B) ch="green";C) x=(a+b)++;D) x=y=0316;
31.下面哪个表达式的值为4.(单选)
A. 11/3B. 11.0/3
C. (float)11/3D. (int)(11.0/3+0.5)
32.已知a为整型变量,那么与表达式 a!=0 真假值情况相同的表达式有哪些?(多选)
A. a0||a0B. a
C. !a= =0D. !a
33.以下非法的赋值语句是
A) n=(i=2,++i);B) j++;C) ++(i+1);D) x=j0;
34.若有以下程序:
main()
{int k=2,i=2,m;
m=(k+=i=k); printf("%d,%d\n",m,i);
}
执行后的输出结果是______。
A) 8,6B) 8,3C) 6,4D) 7,4
35.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1y+z/2的值是______。
A) 6B) 0C) 2D) 1
36.以下程序的输出结果是
main()
{
int a=3;
printf("%d\n",(a+=a-=aa) );
}
A) -6B)12C) 0D) –12
37.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)(n=cd)运算后,n的值为
A) 0B) 1C)2D) 3
38.假定w、x、y、z、m均为int型变量,有如下程序段:
w=1; x=2; y=3; z=4;
m=(wx)?w: x;
m=(my)?m:y;
m=(mz)?m: z;
则该程序运行后,m的值是
A) 4B) 3C) 2D) 1
1.2 填空题
1.下面程序段的输出结果是。
int k=10;
float a=3.5,b=6.7,c;
c=a+k%3(int)(a+b)%2/4;
2.表达式5%(-3)的值是,表达式-5%(-3)的值是。
3.已知:int a=5;则执行a+=a-=aa;语句后,a的值为。
4.下面程序的运行结果是x=,y=。
main( )
{ float x=4.9;int y;
y=(int)x;
printf ("x=%f , y=%d", x ,y); }
5.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为。
6.以下程序的输出结果是。
main()
{inta=5,b=4,c=6,d;
printf("%d\n",d=ab?(ac?a:c):(b));
}
7.以下程序的输出结果是。
main()
{ inta=4,b=5,c=0,d;
d=!a!b||!c;
printf("%d\n",d);
}
8.当a=3,b=4,c=5时,写出下列各式的值。
ab的值为___, a=b的值为___,
a==c的值为___, a!=c的值为___,
ab的值为___, !ab的值为___,
a||c的值为___, !a||c的值为___,
a+bcb==c的值为___。
9.整型变量a的值是5,表达式a/=a+a;的值。
10.已知a=3,b=4,c=5,逻辑表达式a||b+cb-c的值
11.已知a=3,b=4,c=5,逻辑表达式!(ab)!c||1的值
1.3 程序设计题
1.编写程序:在屏幕上显示一句话“helloneusoft!”。
2.编写程序在屏幕上输出如下图型:
3.已知圆的半径是5.6,求其直径、周长、面积并输出。
4.从键盘输入圆的半径,求其直径、周长、面积并输出。
5.编写程序求任意圆的体积
6.求任意一元二次方程度两个实根。
第二章 顺序程序结构设计
2.1 填空题
1.计算机语言提供三种基本控制结构,即,,。人们提倡使用这三种结构编写程序,并称这样的程序设计为。
2.2 程序设计题
1.从键盘输入5个整数,求它们的和、平均值并输出。
2.编写程序,从键盘输入两个整数分别存放在变量c1,c2中,要求通过程序交换它们的值。
第三章 分支结构程序设计
3.1 填空题
1.能正确表示“当x的值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()。
A)(x=1) (x=10)(x=200) || (x=210)
B)(x=1)|| (x=10) || (x=200) || (x=210)
C)(x=1) (x=10) || (x=200)(x=210)
D)(x=1)|| (x=10)(x=200) || (x=210)
2.判断char型变量ch是否为大写字母的正确表达式是()。
A)’A’=ch=’Z’B) (ch=’A’)(ch=’Z’)
C) (ch=’A’)(ch=’Z’)D)(‘A’=ch) AND (‘Z’=ch)
3.请阅读以下程序:
main()
{int a=5, b=0, c=0;
if (a=b+c) printf(“\n”);
elseprintf(“$$$\n”);
}
以上程序()。
A) 有语法错误不能通过编译B) 可以通过编译但不能通过连接
C) 输出D) 输出$$$
4.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()。
if (ab)
if(cd) x=1;
else
if (ac)
if (bd) x=2;
else x=3;
else x=6;
else x=7;
A) 1B) 2C) 3D)6
5.以下程序的输出结果是()。
main()
{int x=2, y=-1, z=2;
if (xy)
if (y0)z=0;
elsez=z+1;
printf(“%d\n”, z);
}
A) 3B) 2C) 1D) 0
6.若运行时给变量x输入12,则以下程序的运行结果是()。
main()
{int x, y;
scanf(“%d”, x);
y=x12?x+10:x-12;
printf(“%d\n”, y);
}
A) 0B) 22C) 12D) 10
3.2 填空题
1.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。请在横线上填写正确的内容。
main()
{char ch;
scanf(“%c”, ch);
if () ch=ch+32;
else if ( ch=’a’ch=’z’ );
printf(“%c”, ch);
}
2.以下程序实现:输入三个整数,按从大到小的顺序进行输出。请在横线上填写正确内容。
main()
{int x, y, z, c;
scanf(“%d %d %d”, x, y, z);
if ( )
if ( )
if ()
printf(“%d, %d,%d”, x, y, z);
}
3.以下程序的运行结果是。
main()
{int a, b, c, d, x;
a=c=0;b=1;d=20;
if (a)d=d-10;
else if (!b)
if (!c)x=15;
else x=25;
printf(“%d\n”,d);
}
4.下面程序根据以下函数关系,对输入的每个x值,计算出y值。请在横线上填写正确内容。
x y
2x=10 x(x+2)
-1x=2 2x
X=-1 x-1
main()
{int x, y;
scanf(“%d”, x);
if () y=x(x+2);
else if () y=2x;
else if ( x=-1 ) y=x-1;
else;
if (y!=-1) printf(“%d”, y);
else printf(“error”);
}
5.设有程序片段:
switch (grade)
{case ‘A’ : printf(“ 85-100\n”);
case ‘B’ : printf(“ 70-84\n”);
case ‘C’ : printf(“ 60-69\n”);
case ‘D’ : printf(“60\n”);
default : printf(“error!\n”);
}
若grade的值为’C’,则输出结果是。
6.以下程序段的运行结果是。
int x=1, y=0;
switch (x)
{case 1:
switch (y)
{case 0 : printf(“1\n”); break;
case 1 : printf(“2\n”); break;
}
case 2: printf(“3\n”);
}
3.3 程序设计题
1.写一程序,从键盘上输入一年份year(为十进制数),判断其是否为闰年。(闰年的条件是:能被4整除、但不能被100整除,或者能被400整除)
2.从键盘输入x的值,求y的值并输出。
3.从键盘输入四个整数,输出其中的最大者。
4.求任意二次方程的根。(包括虚根)
5.根据输入的X值计算并输出如下分段函数的值。
6.某百货公司采用购物打折扣的方法来促销商品,该公司根据输入的购物金额,计算并输出顾客实际付款金额,顾客一次性购物的折扣率是:
(1)少于500元不打折;
(2)500元以上且少于1000元者,按九五折优惠;
(3)1000元以上且少于2000元者,按九折优惠;
(4)2000元以上且少于3000元者,按八五折优惠;
(5)3000元以上者,按八折优惠。
7.根据输入的三个边长a,b,c,判断它们能否构成三角形;若能构成三角形,继续判断该三角形是等边、等腰还是一般三角形。
第四章 循环结构程序设计
4.1 选择题
1.设有程序段
intk=10;
while(k=0)k= k—1;
则下面描述中正确的是()
A)while循环执行10次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
2.下面程序的功能是计算:至50中是7的倍数的数值之和,请选择填空。
include stdio.h
main()
{inti,sum= 0;
for(i=1;i=50;i++)
if(())sum+=i;
printf("%d",sum);
}
A) (int)(i/7)==i/7B) (int)i/7==i/7
C)i%7= 0D)i%7==0
3.下面程序段的运行结果是
a=1;b= 2;c=2;
while(abc)
{
t= a;
a= b;
b=t;
c- -;
}
printf("%d,%d,%d",a,6,c);
A)1,2,0B)2,1,0C)1,2,1D)2,1,1
4.下面程序的功能是计算 1至10之间的奇数之和及偶数之和。请选择填空
include stdio.h
main()
{inta,b,c,i;
a=c=0;
for(i=0;i=10;i+=2)
{ a+=i;
();
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11),
}
A)b=i--B) b=i+1C)b=i++D)b=i-1
5.下面程序段:
for(t=1;t=100;t++)
{
scanf("%d",x);
if(x0)continue;
printf("%3d",t);
}
A) 当x0时整个循环结束
B) x=0时什么也不输出
C) printf函数永远也不执行
D)最多允许输出100个非负整数
6.下面程序的运行结果是:
include "stdio.h"
main()
{int i;
for(i=1;i=5;i++)
{if (i%2) printf("");
else continue;
printf("");
}
printf("");}
A) $B)$C) $D)$
7.设有程序段
int k=10;
while(k=5)k=k-1;
则下面描述正确的是
A)while循环执行10次B)是死循环
C)循环语句一次也不执行D)循环体语句执行一次
8.以下程序运行后的输出结果是________。
main()
{int x=15;
while(x10x50)
{x++;
if(x/3)
else continue;
}
printf("%d\n",x);
}
4.2 程序设计题
1.求1~1000内所有能被3整除的整数,所有数右对齐,每行输出10个数,每屏输出20行。
2.从键盘上接受10个数,求和。要求:
(1)、先提示“请输入第1个数:”输入第一个数后再提示“请输入第2个数”,依次类推;
(2)、输入完十个数后,输出十个数求和的结果。
3.求n! ,n的值从键盘输入.
4.从键盘上输入一个正整数(VC下少于10位,winTC下小于32767),求其各数位之和.
5.从键盘输入10个数,找出其中最大的数。分别用while和for语句实现。
6.输出2~100(不含100)之间的全部同构数。所谓同构数是指:如果某数与其右起若干位的平方数相等,则称该数为同构数。
7.编写输出以下图形的程序(要求行数从键盘输入)。
1
12
123
1234
12345
123456
……
8.计算200以内的所有素数的和。
5.1 选择题
1.以下对一维数组a的正确说明是()
(A)int a(10);
(B)int n=10,a[n];
(C)int n; scanf(“%d”,n);int a[n];
(D)define SIZE 10
int a[SIZE];
2.对以下说明语句的正确理解是()
int a[10]=;
(A)将5个初值依次赋给a[1]至a[5]
(B)将5个初值依次赋给a[0]至a[4]
(C)将5个初值依次赋给a[6]至a[10]
(D)因为数组长度与初值的个数不相同,所以此语句不正确
3.下面程序的运行结果是()
char c[5]=;printf(“%s”,c);
(A)ab(B)abc(C)abc+乱码(D)ab\0c\0
4.对两个数组a和b进行如下初始化
char a[]=”ABCDEF”;
char b[]=;
则以下叙述正确的是()
(A)a与b数组完全相同(B)a与b长度相同
(C)a和b中都存放字符串(D)a数组比b数组的长度长
5.下面是对s的初始化,其中不正确的是()
(A)char s[5]=;(B)char s[5]=;
(C)char s[5]=””;(D)char s[5]=”abcdef”;
6.以下程序运行的结果是()
char s[6];
s=”abcd”;
printf(“%s\n”,s);
(A)”abcd”(B)abcd(C)abcd+乱码(D)编译出错
7.若有说明语句char u[]=”Microsoft”,则数组的大小是()
(A)100(B)80(C)10(D)9
8.以下不正确的定义语句是 ()
(A)double y[5]=;
(B)int y[5]=;
(C)char c[]=;
(D)char c[]=;
9.当执行下面的程序时,如果输入ABC,则输出结果是()
A) ABC6789B) ABC67C) 12345ABC6D) ABC456789
include "stdio.h"
include "string.h"
main()
{ char ss[10]="1,2,3,4,5";
gets(ss); strcat(ss, "6789"); printf("%s\n",ss);
}
10.下列程序段的输出结果是。
main()
{ char b[]="Hello,you";
b[5]=0;
printf("%s \n", b );
}
11. 以下程序的输出结果是()
main()
{ int i, a[10];
for(i=9;i=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A) 258B) 741C) 852D) 369
12.在定义int a[10];之后,对a的引用正确的是()。
A.a[10]B.a[6.3]C.a(6)D.a[10-10]
13.以下对一维数组a进行正确初始化的是()。
A.int a[10]=(0,0,0,0,0);B.int a[10]={};
C.int a[]=;D.int a[10]=;
14.以下对字符数组word进行不正确初始化的是()。
A.char word[]=’Trubo\0’;
B.char word[]=;
C.char word[]=;
D.char word[]=”Trubo\0”;
15.以下正确的定义语句是()。
A.int A[‘a’];B.int A[3,4];C.int A[][3];D.int A[10];
16.以下给字符数组str定义和赋值正确的是()。
A.char str[10];str=;
B.char str[]=;
C.char str[10];strcpy(str,“abcdefghijklmnop”);
D.char str[10]=;
17.在执行char str[10]=”China\0”; strlen(str)的结果是()。
A.5B.6C.7D.9
18.在执行char str[10]=”Ch\nina\0”; strlen(str)的结果是()。
A.5B.6C.7D.9
19.当接受用户输入的含空格的字符串时,应使用()函数。
A.scanf()B.gets()C.getchar()D.getc()
20.当输出含空格的字符串时,应使用()函数。
A.printf() B.puts() C.putchar()D.putc()
5.2 填空题
1. 若有定义语句char c[10]=”hello”,s[]=”world”;,则字符数组c的长度为,字符数组c的长度为,字符串”hello”的长度是,字符串“world”的长度为_。
2. 字符串”hello,world!”的长度为,若有说明语句char s[]=”hello,world!”,则数组s的大小是。
3.以下程序执行时输入Language Programming回车的结果是。
include stdio.h
main( )
{
char str[30];
scanf(“%s”, str);
printf(“str=%s\n”, str);
}
4.以下程序执行时输入Language Programming回车的结果是。
include stdio.h
main( )
{
char str[30];
gets(str);
printf(“str=%s\n”, str);
}
5.以下程序的执行结果是。
include stdio.h
main( )
{
int a[]=, i, j, s=0;
j=0;
for (i=3; i=0; i--)
{
s=s+a[i]j;
j=j10;
}
printf(“s=%d\n”, s);
}
6.以下程序的执行结果是。
include stdio.h
main( )
{
char str[]=;
int i;
for (i=0; str[i]!=’\0’; i++)
if (str[i]=’0’str[i]=’9’)
printf(“%c”, str[i]);
printf(“\n”);
}
5.3 程序设计题
1.从键盘输入5个整数,保存到数组a中,先正序输出再逆序输出
2.从键盘输入6个整数保存到数组中,求值最大的元素,将这个值最大的元素与数组的最后一个元素交换。最后输出整个数组
3.从键盘输入8个整数保存到数组中,运用选择法按从大到小排序后输出数组。
4.编程实现:从键盘输入10个字符,存储到字符型一维数组str中,再从键盘上输入另一个字符ch,要求将str中出现的第一个ch字符删除。将删除ch后的数组str输出到屏幕上。
5.编写程序实现:将两个字符串数组进行交换。
6.编程求两个3×4 (3行4列)矩阵之和,然后输出(矩阵元素的值从键盘输入)
7.定义一个4行5列的二维整型数组,对其进行赋值,然后从该数组中选择出一个最小数及该数的下标值(行和列的下标值都要记录)。
另外,虚机团上产品团购,超级便宜
c语言程序设计第三版课后答案完整的谁有
1.5请参照本章例题,编写一个C程序,输出以下信息:
Very Goodj!
解:
main()
{
printf("\n");
printf("\n");
printf(" Very Good! \n");
printf("\n"茄蚂);
printf(" \n");
}
1.6编写一个程序,输入a b c三个值,输出其中最大者。
解:颤野埋main()
{int a,b,c,max;
printf("请输入三个数a,b,c:\n");
scanf("%d,%d,%d",a,b,c);
max=a;
if(maxb)
max=b;
if(maxc)
max=c;
printf("最大数为:%d",max);
}
这个答案完整版在答案家论坛可脊悔以找到,在大学答案的计算机栏目下面有
谁有《C程序设计》(第二版)课后答案?
第一章
1.6
main()
{int a,b,c,max;
printf("input three numbers:\n");
scanf("%d,%d,%d",a,b,c);
max=a;
if(maxb)max=b;
if(maxc)max=c;
printf("max=%d",max);
}
第二章
2.3
(1)(10)10=(12)8=(a)16
(2)(32)10=(40)8=(20)16
(3)(75)10=(113)8=(4b)16
(4)(-617)10=(176627)8=(fd97)16
(5)(-111)10=(177621)8=(ff91)16
(6)(2483)10=(4663)8=(963)16
(7)(-28654)10=(110022)8=(9012)16
(8)(21003)10=(51013)8=(520b)16
2.6
aabb(8)cc(8)abc
(7)AN
2.7
main()
{char c1='C',c2='h',c3='i',c4='n',c5='a';
c1+=4, c2+=4, c3+=4, c4+=4, c5+=4;
printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);
}
2.8
main()
{int c1,c2;
c1=97;c2=98;
printf("%c%c",c1,c2);
}
2.9
(1)=2.5
(2)=3.5
2.10
9,11,9,10
2.12
(1)24(2)10(3)60(4)0(5)0(6)0
第三章
3.4
main()
{int a,b,c;
long int u,n;
float x,y,z;
char c1,c2;
a=3;b=4;c=5;
x=1.2;y=2.4;z=-3.6;
u=51274;n=128765;
c1='a';c2='b';
printf("\n");
printf("a=%2db=%2dc=%2d\n",a,b,c);
printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);
printf("x+y=%5.2fy+z=%5.2fz+x=%5.2f\n",x+y,y+z,z+x);
printf("u=%6ldn=%9ld\n",u,n);
printf("c1='%c'扮圆or %d(ASCII)\n",c1,c1);
printf("c2='%c'or %d(ASCII)\n",c2,c2);
}
3.5
57
57
67.856400,-789.123962
67.856400,-789.123962
67.86 -789.12,67.856400,-789.123962,67.856400,-789.123962
6.785640e+001,-7.89e+002
A,65,101,41
1234567,4553207,d687
65535,177777,ffff,-1
COMPUTER,COM
3.6
a=3 b=7/
x=8.5 y=71.82/
c1=A c2=a/
3.7
1020Aa1.5 -3.75 +1.4,67.8/
(空3)10(空3)20Aa1.5(空1)-3.75(空态逗1)(随意输入一个数),67.8回车
3.8
main()
{float pi,h,r,l,s,sq,sv,sz;
pi=3.1415926;
printf("input r,h\n");
scanf("%f,%f",r,h);
l=2pir;
s=rrpi;
sq=4pirr;
sv=4.0/3.0pirrr;
sz=pirrh;
printf("l=%6.2f\n",l);
printf("s=%6.2f\n",s);
printf("sq=%6.2f\n",sq);
printf("vq=%6.2f\n",sv);
printf("vz=%6.2f\n",sz);
}
3.9
main()
{float c,f;
scanf("%f",f);
c=(5.0/9.0)(f-32);
printf("c=%5.2f\n",c);
}
3.10
include"stdio.h"帆缺卖
main()
{char c1,c2;
scanf("%c,%c",c1,c2);
putchar(c1);
putchar(c2);
printf("\n");
printf("%c%c\n",c1,c2);
}
第四章
4.3
(1)0(2)1(3)1(4)0(5)1
4.4
main()
{int a,b,c;
scanf("%d,%d,%d",a,b,c);
if(ab)
if(bc)
printf("max=%d\n",c);
else
printf("max=%d\n",b);
else if(ac)
printf("max=%d\n",c);
else
printf("max=%d\n",a);
}
main()
{int a,b,c,temp,max;
scanf("%d,%d,%d",a,b,c);
temp=(ab)?a:b;
max=(ctemp)?c:temp;
printf("max=%d",max);
}
4.5
main()
{int x,y;
scanf("%d",x);
if(x1)y=x;
else if(x10)y=2x-1;
else y=3x-11;
printf("y=%d",y);
}
4.6
main()
{int score,temp,logic;
char grade;
logic=1;
while(logic)
{scanf("%d",score);
if(score=0score=100)logic=0;
}
if(score==100)
temp=9;
else
temp=(score-score%10)/10;
switch(temp)
{case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:grade='E';
}
printf"score=%d,grade=%c",score,grade);
}
4.7
main()
{long int num;
int indiv,ten,hundred,thousand,ten_thousand,place;
scanf("%ld",num);
if(num9999) place=5;
else if(num999) place=4;
else if(num99) place=3;
else if(num9) place=2;
else place=1;
printf("place=%d\n",place);
ten_thousand=num/10000;
thousand=(num-ten_thousand10000)/1000;
hundred=(num-ten_thousand10000-thousand1000)/100;
ten=(num-ten_thousand10000-thousand1000-hundred100)/10;
indiv=num-ten_thousand10000-thousand1000-hundred100-ten10;
switch(place)
{case 5:printf("%d,%d,%d,%d,%d\n",ten_thousand,thousand,hundred,ten,indiv);
printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thousand,ten_thousand);
break;
case 4:printf("%d,%d,%d,%d\n",thousand,hundred,ten,indiv);
printf("%d,%d,%d,%d\n",indiv,ten,hundred,thousand);
break;
case 3:printf("%d,%d,%d\n",hundred,ten,indiv);
printf("%d,%d,%d\n",indiv,ten,hundred);
break;
case 2:printf("%d,%d\n",ten,indiv);
printf("%d,%d\n",indiv,ten);
break;
case 1:printf("%d\n",indiv);
printf("%d\n",indiv);
}
}
4.8
main()
{long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
bon1=1000000.1;
bon2=bon1+1000000.075;
bon4=bon2+2000000.05;
bon6=bon4+2000000.03;
bon10=bon6+4000000.015;
scanf("%ld",i);
if(i=1e5)bonus=i0.1;
else if(i=2e5)bonus=bon1+(i-100000)0.075;
else if(i=4e5)bonus=bon2+(i-200000)0.05;
else if(i=6e5)bonus=bon4+(i-400000)0.03;
else if(i=1e6)bonus=bon6+(i-600000)0.015;
else bonus=bon10+(i-1000000)0.01;
printf("bonus=%10.2f",bonus);
}
main()
{long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
int branch;
bon1=1000000.1;
bon2=bon1+1000000.075;
bon4=bon2+2000000.05;
bon6=bon4+2000000.03;
bon10=bon6+4000000.015;
scanf("%ld",i);
branch=i/100000;
if(branch10)branch=10;
switch(branch)
{case 0:bonus=i0.1;break;
case 1:bonus=bon1+(i-100000)0.075;break;
case 2:
case 3:bonus=bon2+(i-200000)0.05;break;
case 4:
case 5:bonus=bon4+(i-400000)0.03;break;
case 6:
case 7
case 8:
case 9:bonus=bon6+(i-600000)0.015;break;
case 10:bonus=bon10+(i-1000000)0.01;
}
printf("bonus=%10.2f",bonus);
}
4.9
main()
{int t,a,b,c,d;
scanf("%d,%d,%d,%d",a,b,c,d);
if(ab){t=a;a=b;b=t;}
if(ac){t=a;a=c;c=t;}
if(ad){t=a;a=d;d=t;}
if(bc){t=b;b=c;c=t;}
if(bd){t=b;b=d;d=t;}
if(cd){t=c;c=d;d=t;}
printf("%d%d%d%d\n",a,b,c,d);
}
4.10
main()
{int h=10;
float x,y,x0=2,y0=2,d1,d2,d3,d4;
scanf("%f,%f",x,y);
d1=(x-x0)(x-x0)+(y-y0)(y-y0);
d2=(x-x0)(x-x0)+(y+y0)(y+y0);
d3=(x+x0)(x+x0)+(y-y0)(y-y0);
d4=(x+x0)(x+x0)+(y+y0)(y+y0);
if(d11d21d31d41)h=0;
printf("h=%d",h);
}
第五章循环控制
5.1
main()
{int a,b,num1,num2,temp;
scanf("%d,%d",num1,num2);
if(num1num2){temp=num1;num1=num2;num2=temp;}
a=num1;b=num2;
while(b!=0)
{temp=a%b;
a=b;
b=temp;}
printf("%d\n",a);
printf("%d\n",num1num2/a);
}
5.2
include"stdio.h"
main()
{char c;
int letters=0,space=0,digit=0,other=0;
while((c=getchar())!='\n')
{if(c='a'c='z'||c='A'c='Z') letters++;
else if(c==' ')space++;
else if(c='0'c='9')digit++;
else other++;
}
printf("letters=%d\nspace=%d\ndigit=%d\nother=%d\n",letters,space,digit,other);
}
5.3
main()
{int a,n,count=1,sn=0,tn=0;
scanf("%d,%d",a,n);
while(count=n)
{tn+=a;
sn+=tn;
a=10;
++count;
}
printf("a+aa+aaa+...=%d\n",sn);
}
5.4
main()
{float n,s=0,t=1;
for(n=1;n=20;n++)
{t=n;
s+=t;
}
printf("s=%e\n",s);
}
5.5
main()
{int N1=100,N2=50,N3=10;
float k;
float s1=0,s2=0,s3=0;
for(k=1;k=N1;k++)s1+=k;
for(k=1;k=N2;k++)s2+=kk;
for(k=1;k=N3;k++)s3+=1/k;
printf("s=%8.2f\n",s1+s2+s3);
}
5.6
main()
{int i,j,k,n;
for(n=100;n1000;n++)
{i=n/100;
j=n/10-i10;
k=n%10;
if(i100+j10+k==iii+jjj+kkk)
printf("n=%d\n",n);
}
}
5.7
define M 1000
main()
{int k0,k1,k2,k3,k4,k5,k6,k7,k8,k9;
int i,j,n,s;
for(j=2;j=M;j++)
{n=0;
s=j;
for(i=1;ij;i++)
{if((j%i)==0)
{n++;
s=s-i;
switch(n)
{case 1:k0=i;break;
case 2:k1=i;break;
case 3:k2=i;break;
case 4:k3=i;break;
case 5:k4=i;break;
case 6:k5=i;break;
case 7:k6=i;break;
case 8:k7=i;break;
case 9:k8=i;break;
case 10:k9=i;break;
}
}
}
if(s==0)
{printf("j=%d\n",j);
if(n1)printf("%d,%d",k0,k1);
if(n2)printf(",%d",k2);
if(n3)printf(",%d",k3);
if(n4)printf(",%d",k4);
if(n5)printf(",%d",k5);
if(n6)printf(",%d",k6);
if(n7)printf(",%d",k7);
if(n8)printf(",%d",k8);
if(n9)printf(",%d\n",k9);
}
}
}
main()
{static int k[10];
int i,j,n,s;
for(j=2;j=1000;j++)
{n=-1;
s=j;
for(i=1;ij;i++)
{if((j%i)==0)
{n++;
s=s-i;
k[n]=i;
}
}
if(s==0)
{printf("j=%d\n",j);
for(i=0;in;i++)
printf("%d,",k[i]);
printf("%d\n",k[n]);
}
}
}
5.8
main()
{int n,t,number=20;
float a=2;b=1;s=0;
for(n=1;n=number;n++)
{s=s+a/b;
t=a,a=a+b,b=t;
}
printf("s=%9.6f\n",s);
}
5.9
main()
{float sn=100.0,hn=sn/2;
int n;
for(n=2;n=10;n++)
{sn=sn+2hn;
hn=hn/2;
}
printf("sn=%f\n",sn);
printf("hn=%f\n",hn);
}
5.10
main()
{int day,x1,x2;
day=9;
x2=1;
while(day0)
{x1=(x2+1)2;
x2=x1;
day--;
}
printf("x1=%d\n",x1);
}
5.11
include"math.h"
main()
{float a,xn0,xn1;
scanf("%f",a);
xn0=a/2;
xn1=(xn0+a/xn0)/2;
do
{xn0=xn1;
xn1=(xn0+a/xn0)/2;
}
while(fabs(xn0-xn1)=1e-5);
printf("a=%5.2f\n,xn1=%8.2f\n",a,xn1);
}
5.12
include"math.h"
main()
{float x,x0,f,f1;
x=1.5;
do
{x0=x;
f=((2x0-4)x0+3)x0-6;
f1=(6x0-8)x0+3;
x=x0-f/f1;
}
while(fabs(x-x0)=1e-5);
printf("x=%6.2f\n",x);
}
5.13
include"math.h"
main()
{float x0,x1,x2,fx0,fx1,fx2;
do
{scanf("%f,%f",x1,x2);
fx1=x1((2x1-4)x1+3)-6;
fx2=x2((2x2-4)x2+3)-6;
}
while(fx1fx20);
do
{x0=(x1+x2)/2;
fx0=x0((2x0-4)x0+3)-6;
if((fx0fx1)0)
{x2=x0;
fx2=fx0;
}
else
{x1=x0;
fx1=fx0;
}
}
while(fabs(fx0)=1e-5);
printf("x0=%6.2f\n",x0);
}
5.14
main()
{int i,j,k;
for(i=0;i=3;i++)
{for(j=0;j=2-i;j++)
printf(" ");
for(k=0;k=2i;k++)
printf("");
printf("\n");
}
for(i=0;i=2;i++)
{for(j=0;j=i;j++)
printf(" ");
for(k=0;k=4-2i;k++)
printf("");
printf("\n");
}
}
5.15
main()
{char i,j,k;
for(i='x';i='z';i++)
for(j='x';j='z';j++)
{if(i!=j)
for(k='x';k='z';k++)
{if(i!=kj!=k)
{if(i!='x'k!='x'k!='z')
printf("\na--%c\tb--%c\tc--%c\n",i,j,k);
}
}
}
}
第六章数组
6.1
include math.h
define N 101
main()
{ int i,j,line,a[N];
for (i=2;iN;i++)a[i]=i;
for (i=2;isqrt(N);i++)
for (j=i+1;jN;j++)
{if(a[i]!=0a[j]!=0)
if (a[j]%a[i]==0)
a[j]=0;}
printf("\n");
for (i=2,line=0;iN;i++)
{if(a[i]!=0)
{printf("%5d",a[i]);
line++;}
if(line==10)
{printf("\n");
line=0;}
}
}
6.2
define N 10
main()
{int i,j,min,temp,a[N];
for(i=0;iN;i++)
scanf("%d",a[i]);
for(i=0;iN-1;i++)
{min=i;
for(j=i+1;jN;j++)
if(a[min]a[j])min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
for(i=0;iN;i++)
printf("%5d",a[i]);
}
6.3
main()
{float a[3][3],sum;
int i,j;
for(i=0;i3;i++)
for(j=0;j3;j++)
{scanf("%f",sum);
a[i][j]=sum;
}
for(i=0;i3;i++)
sum=sum+a[i][i];
printf("sum=%f",sum);
}
6.4
main()
{int a[11]={1,4,6,9,13,16,19,28,40,100};
int temp1,temp2,number, end,i,j;
scanf("%d",number);
end=a[9];
if(numberend) a[10]=number;
else
{for(i=0;i10;i++)
{if(a[i]number)
{temp1=a[i];
a[i]=number;
for(j=i+1;j11;j++)
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
}
}
}
for(i=0;i11;i++)
printf("%6d",a[i]);
}
6.5
define N 5
main()
{int a[N]={8,6,5,4,1},i,temp;
for(i=0;iN/2;i++)
{temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
for(i=0;iN;i++)
printf("%4d",a[i]);
}
6.6
define N 11
main()
{int i,j,a[N][N];
for(i=1;iN;i++)
{a[i][i]=1;
a[i][1]=1;
}
for(i=3;iN;i++)
for(j=2;ji;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=1;iN;i++)
{for(j=1;j=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
}
6.7
main()
{int a[16][16],i,j,k,p,m,n;
p=1;
while(p==1)
{scanf("%d",n);
if((n!=0)(n=15)(n%2!=0))p=0;
}
for(i=1;i=n;i++)
for(j=1;j=n;j++)
a[i][j]=0;
j=n/2+1;
a[1][j]=1;
for(k=2;k=nn;k++)
{i=i-1;
j=j+1;
if((i1)(jn))
{i=i+2;
j=j-1;
}
else
{if(i1)i=n;
if(jn)j=1;
}
if(a[i][j]==0)a[i][j]=k;
else
{i=i+2;
j=j-1;
a[i][j]=k;
}
}
for(i=1;i=n;i++)
{for(j=1;j=n;j++)
printf("%3d",a[i][j]);
printf("\n");
}
}
6.8
define N 10
define M 10
main()
{int i,j,k,m,n,flag1,flag2,a[N][M],max,maxi,maxj;
scanf("%d,%d",n,m);
for(i=0;in;i++)
for(j=0;jm;j++)
scanf("%d",a[i][j]);
flag2=0;
for(i=0;in;i++)
{max=a[i][0];
for(j=0;jm;j++)
if(maxa[i][j])
{max=a[i][j];
maxj=j;
}
for(k=0,flag1=1;knflag1;k++)
if(maxa[k][maxj])flag1=0;
if(flag1)
{ printf("\na[%d][%d]=%d\n",i,maxj,max);
flag2=1;
}
}
if(!flag2) printf("NOT");
}
6.9
includestdio.h
define N 15
main()
{int i,j,number,top,bott,min,loca,a[N],flag;
char c;
for(i=0;i=N;i++)
scanf("%d",a[i]);
flag=1;
while(flag)
{scanf("%d",number);
loca=0;
top=0;
bott=N-1;
if((numbera[0])||(numbera[N-1]))
loca=-1;
while((loca==0)(top=bott))
{min=(bott+top)/2;
if(number==a[min])
{loca=min;
printf("number=%d,loca=%d\n",number,loca+1);
}
else if(numbera[min])
bott=min-1;
else
top=min+1;
}
if(loca==0||loca==-1)
printf("%d not in table\n",number);
printf("continue Y/N or y/n\n");
c=getchar();
if(c=='N'||c=='n')flag=0;
}
}
6.10
main()
{int i,j,uppn,lown,dign,span,othn;
char text[3][80];
uppn=lown=dign=span=othn=0;
for(i=0;i3;i++)
{gets(text[i]);
for(j=0;j80text[i][j]!='\0';j++)
{if(text[i][j]='A'text[i][j]='Z')
uppn++;
else if(text[i][j]='a'text[i][j]='z')
lown++;
else if(text[i][j]='0'text[i][j]='9')
dign++;
else if(text[i][j]==' ')
span++;
else
othn++;
}
}
for(i=0;i3;i++)
printf("%s\n",text[i]);
printf("uppn=%d\n",uppn);
printf("lown=%d\n",lown);
printf("dign=%d\n",dign);
printf("span=%d\n",span);
printf("othn=%d\n",othn);
}
6.11
main()
{static char a[5]={'','','','',''};
int i,j,k;
char space=' ';
for(i=0;i=5;i++)
{printf("\n");
for(j=1;j=3i;j++)
printf("%1c",space);
for(k=0;k=5;k++)
printf("%3c",a[k]);
}
}
6.12
includestdio.h
main()
{int i,n;
char ch[80],tran[80];
gets(ch);
i=0;
while(ch[i]!='\0')
{if((ch[i]='A')(ch[i]='Z'))
tran[i]=26+64-ch[i]+1+64;
else if((ch[i]='a')(ch[i]='z'))
tran[i]=26+96-ch[i]+1+96;
else
tran[i]=ch[i];
i++;
}
n=i;
for(i=0;in;i++)
putchar(tran[i]);
}
6.13
main()
{char s1[80],s2[40];
int i=0,j=0;
scanf("%s",s1);
scanf("%s",s2);
while(s1[i]!='\0')i++;
while(s2[j]!='\0')s1[i++]=s2[j++];
s1[i]='\0';
printf("s=%s\n",s1);
}
6.14
includestdio.h
main()
{int i,resu;
char s1[100],s2[100];
gets(s1);
gets(s2);
i=0;
while((s1[i]==s2[i])(s1[i]!='\0'))i++;
if(s1[i]=='\0's2[i]=='\0')resu=0;
else
resu=s1[i]-s2[i];
printf("s1=%s,s2=%s,resu=%d\n",s1,s2,resu);
}
6.15
include"stdio.h"
main()
{char from[80],to[80];;
int i;
scanf("%s",from);
for(i=0;i=strlen(from);i++)
to[i]=from[i];
printf("%s\n",to);
}
第七章
7.1
hcf(u,v)
int u,v;
{int a,b,t,r;
if(uv){t=u;u=v;v=t;}
a=u;b=v;
while((r=b%a)!=0)
{b=a;a=r;}
return(a);
}
lcd(u,v,h)
int u,v,h;
{return(uv/h);}
main()
{int u,v,h,l;
scanf("%d,%d",u,v);
h=hcf(u,v);
printf("H.C.F=%d\n",h);
l=lcd(u,v,h);
printf("L.C.D=%d\n",l);
}
7.2
include"math.h"
float x1,x2,disc,p,q;
greater_than_zero(a,b)
float a,b;
{x1=(-b+sqrt(disc))/(2a);
x2=(-b-sqrt(disc))/(2a);
}
equal_to_zero(a,b)
flaot a,b;
{x1=x2=-b/(2a);}
smaller_than_zero(a,b)
float a,b;
{p=-b/(2a);
q=sqrt(-disc)/(2a);
}
main()
{float a,b,c;
scanf("%f,%f,%f",a,b,c);
disc=bb-4ac;
if(fabs(disc)=1e-5)
{equal_to_zero(a,b);
printf("x1=%5.2f\tx2=%5.2f\n",x1,x2);
}
else if(disc0)
{greater_than_zero(a,b);
printf("x1=%5.2f\tx2=%5.2f\n",x1,x2);
}
else
{smaller_than_zero(a,b);
printf("x1=%5.2f+%5.2fi\tx2=%5.2f-%5.2fi\n",p,q,p,q);
}
}
7.3
main()
{int number;
scanf("%d",number);
if(prime(number))
printf("yes");
else
printf("no");
}
int prime(number)
int number;
{int flag=1,n;
for(n=2;nnumber/2flag==1;n++)
if(number%n==0)
flag=0;
return(flag);
}
7.4
define N 3
int array[N][N];
convert(array)
int array[3][3];
{int i,j,t;
for(i=0;iN;i++)
for(j=i+1;jN;j++)
{t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
main()
{int i,j;
for(i=0;iN;i++)
for(j=0;jN;j++)
scanf("%d",array[i][j]);
convert(array);
for(i=0;iN;i++)
{printf("\n");
for(j=0;jN;j++)
printf("%5d",array[i][j]);
}
}
7.5
main()
{char str[100];
scanf("%s",str);
inverse(str);
printf("%s\n",str);
}
inverse(str)
char str[];
{char t;
int i,j;
for(i=0,j=strlen(str);istrlen(str)/2;i++,j--)
{t=str[i];
str[i]=str[j-1];
str[j-1]=t;
}
}
7.6
char concate(str1,str2,str)
char str1[],str2[],str[];
{int i,j;
for(i=0;str1[i]!='\0';i++)
str[i]=str1[i];
for(j=0;str2[j]!='\0';j++)
str[i+j]=str2[j];
str[i+j]='\0';
}
main()
{char s1[100],s2[100],s[100];
scanf("%s",s1);
scanf("%s",s2);
concate(s1,s2,s);
printf("\ns=%s",s);
}
7.7
main()
{char str[80],c[80];
void cpy();
gets(str);
cpy(str,c);
printf("\n%s\n",c);
}
void cpy(s,c)
char s[],c[];
{int i,j;
for(i=0,j=0;s[i]!='\0';i++)
if(s[i]=='a'||s[i]=='A'||s[i]=='e'||s[i]=='E'||s[i]=='i'
s[i]=='I'||s[i]=='o'||s[i]=='O'||s[i]=='u'||s[i]=='U')
{c[j]=s[i];j++;}
c[j]='\0';
}
7.8
main()
{char str[80];
scanf("%s",str);
insert(str);
}
insert(str)
char str[];
{int i;
for(i=strlen(str);i0;i--)
{str[i2]=str[i];
str[i2-1]=' ';
}
printf("%s\n",str);
}
7.9
int alph,digit,space,others;
main()
{char text[80];
gets(text);
alph=0,digit=0,space=0,others=0;
count(text);
printf("\nalph=%d,digit=%d,space=%d,others=%d\n",alph,digit,space,others);
}
count(str)
char str[];
{int i;
for(i=0;str[i]!='\0';i++)
if((str[i]='a'str[i]='z')||(str[i]='A'str[i]='Z'))
alph++;
else if(str[i]='0'str[i]='9')
digit++;
else if(strcmp(str[i],' ')==0)
space++;
else
others++;
}
7.10
int alph(c)
char c;
{if((c='a'c='z')||(c='A'c='Z'))
return(1);
else
return(0);
}
int longest(string)
char string[];
{int len=0,i,length=0,flag=1,place,point;
for(i=0;i=strlen(string);i++)
if(alph(string[i]))
if(flag)
{point=i;
flag=0;
}
else
len++;
else
{flag=1;
if(lenlength)
{length=len;
place=point;
len=0;
}
}
return(place);
}
main()
{int i;
char line[100];
gets(line);
for(i=longest(line);alph(line[i]);i++)
printf("%c",line[i]);
printf("\n");
}
7.11
define N 10
char str[N];
main()
{int i,flag;
for(flag=1;flag==1;)
{scanf("%
求:C语言程序设计试卷及答案一份
一、选择题(1~40题每题1分,41~50题每题2分,共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
1.微型计算机的运算器、控制器及内存储器组合在一起,称之为()(本题分值:1分)
【正确答案】D
A.ALU
B.CPU
C.MPU
D.主机
2.下列存储器中,存取速度最快的是()(本题分值:1分)
【正确答案】D
A.软盘
B.硬盘
C.光盘
D.内存
3.系统软件中最关键的是()(本题分值:1分)
【正确答案】A
A.操作系统
B.语言处理程序
C.工具软件
D.数据库管理系统
4、CPU处理的数据基本单位为字,一个字的字长()(本题分值:1分)
【正确答案】D
A.为8个二进制位
B.为16个二进制位
C.为32个二进制位
D.与CPU芯片的型号有关
5.打印当前屏幕内容应使用的控制键是()(本题分值:1分)
【正确答案】D
A.Scroll-Lock
B.Num-Lock
C.PgDn
D.PrtSc(Print Screen)
6.能将高级语言源程序转或猜滑换成目标程序的是()(本题分值:1分)
【正确答案】C
A.调试衫腊程序
B.解释程序
C.编译程序
D.编辑程序
7.二进制数1110111.11转换成十进制数是()(本题分值:1分)
【正确答案】B
A.119.375
B.119.75
C.119.125
D.119.3
8.十六进制数FF.1转换成十进制数是()(本题分值:1分)
【正确答案】A
A.255.0625
B.255.125
C.127.0625
D.127.125
9.中国国家计算机网络设施是()(本题分值:1分)
【正确答案】A
A.NCFC
B.CERNET
C.ISDN
D.Internet
10.控制键^C的功能为()(本题分值:1分)
【正确答案】A
A.终止当前操作
B.系统复位
C.暂停标准输出设备的输出
D.结束命令行
11.COMMAND.COM为命令处理程序,DOS系统启动后,它()(本题分值:1分)
【正确答案】B
A.驻留在外存,需要时装入内存
B.常驻内存,包含所有兆野内部命令
C.不能处理外部命令
D.不能处理后缀为.EXE的可执行文件
12.为了将所有扩展名为.PAS的文件改成扩展名为.P,应使用命令()(本题分值:1分)
【正确答案】C
A.REN .PAS .?AS
B.REN PAS P
C.REN .PAS .P
D.REN .PAS .P??
13.设当前盘中文件XY.C的路径为\A\B\XU,当前目录为\A\B。为了查看文件XY.C的内容,应使用命令()(本题分值:1分)
【正确答案】A
A.TYPE XU\XY.C
B.TYPE \XU\XY.C
C.DIR XU\XY.C
D.DIR \A\B\XU\XY.C
14.要将提示符改成当前盘当前目录后加一个大于号“>”,应使用命令()(本题分值:1分)
【正确答案】B
A.PROMPT
B.PROMPT $ p $ g
C.PROMPT $ $
D.PROMPT C\>
15.在多媒体计算机系统中,CD-ROM属于()(本题分值:1分)
【正确答案】D
A.感觉媒体
B.表示媒体
C.表现媒体
D.存储媒体
16.设当前盘为C盘,将A盘根目录下的文件目录信息存放到当前盘当前目录下的文件AB中,应使用命令()(本题分值:1分)
【正确答案】C
A.TYPE A:\>AB
B.DIR >AB
C.DIR A:\>AB
D.DIR \>AB
17.在位运算中,操作数每右移一位,其结果相当于()(本题分值:1分)
【正确答案】B
A.操作数乘以2
B.操作数除以2
C.操作数除以16
D.操作数乘以16
18.在当前盘当前目录下有一个文件A.BAT,其内容为
CD \
MD \XYZ\AB\B\C
CD XYZ\AB\B
在正确执行上述文件后,接着执行下列命令时,不会发生错误的是()(本题分值:1分)
【正确答案】C
A.MD C
B.RD \XYZ
C.RD C
D.RD B
19.下列命令组中两个DOS命令互相等价的是()(本题分值:1分)
【正确答案】D
A.TYPE AB.TXT与DIR AB.TXT
B.DISKCOMP A:B:与COMP A:. B:.
C.TYPE AB.TXT>>XY.TXT与COPY AB.TXT XY.TXT
D.TYPE AB.TXT>XY.TXT与COPY AB.TXT XY.TXT
20.设A盘为启动盘,其目录结构为
根目录
DOS子目录COMAND.COM
USER子目录AUTOEXEC.BAT
其文件AUTOEXEC.BAT的内容如下:
MD \XYZ
CD \DOS\USER
则由A盘启动成功后,A盘的当前目录是()(本题分值:2分)
【正确答案】C
A.\DOS\USER
B.\XYZ
C.根目录
D.\DOS
21.C语言提供的合法关键字是()(本题分值:1分)
【正确答案】C
A.switch
B.cher
C.case
D.default
22.在C语言中,合法的字符常量是()(本题分值:1分)
【正确答案】B
A.′\084′
B.′\x43′
C.′ab′
D.′\0′
23.若已定义x和y为double类型,则表达式: x=1,y=x+3/2的值是()(本题分值:1分)
【正确答案】C
A.1
B.2
C.2.0
D.2.5
24.合法的数组定义是()(本题分值:1分)
【正确答案】D
A.int a[]=〃string〃;
B.int a[5]={0,1,2,3,4,5};
C.char a=〃string〃;
D.char a[]={0,1,2,3,4,5};
25.设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是()(本题分值:1分)
【正确答案】A
A.10<a<15
B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.!(a<=10)&&!(a>=15)
26.若t为double类型,表达式t=1,t+5,t++的值是()(本题分值:1分)
【正确答案】C
A.1
B.6.0
C.2.0
D.1.0
27.若有定义和语句:
char s[10];s=〃abcd〃;printf(〃%s\n〃,s);
则结果是(以下μ代表空格)()(本题分值:1分)
【正确答案】D
A.输出abcd
B.输出a
C.输出abcdμμμμμ
D.编译不通过
28.若有定义和语句:
int pp,p,a=10,b=20;
pp=&p;p=&a;p=&b;printf(〃%d,%d\n〃,p,pp);
则输出结果是()(本题分值:1分)
【正确答案】D
A.10,10
B.10,20
C.20,10
D.20,20
29.若有以下定义和语句:
int u=010,v=0x10,w=10;
printf(〃%d,%d,%d\n〃,u,v,w);
则输出结果是()(本题分值:1分)
【正确答案】A
A.8,16,10
B.10,10,10
C.8,8,10
D.8,10,10
30.若有以下定义和语句:
char c1=′b′,c2=′e′;
printf(〃%d,%c\n〃,c2-c1,c2-′a′+′A′);
则输出结果是()(本题分值:1分)
【正确答案】B
A.2,M
B.3,E
C.2,E
D.输出项与对应的格式控制不一致,输出结果不确定
31.若有定义:int a[3][4];,()不能表示数组元素a[1][1]。(本题分值:1分)
【正确答案】D
A.(a[1]+1)
B.(a[1][1])
C.((a+1))[1]
D.(a+5)
32.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是()(本题分值:1分)
for(i=5;i>0;i--)
for(j=0;j<4;j++){…}
【正确答案】A
A.20
B.24
C.25
D.30
33.若有以下定义和语句:
char s1=〃12345〃,s2=〃1234〃;
printf(〃%d\n〃,strlen(strcpy(s1,s2)));
则输出结果是()(本题分值:1分)
【正确答案】A
A.4
B.5
C.9
D.10
34.若有以下定义和语句:
int a[10]={1,2,3,4,5,6,7,8,9,10},p=a;
则不能表示a数组元素的表达式是()(本题分值:1分)
【正确答案】B
A.p
B.a[10]
C.a
D.a[p-a]
35.下面程序的输出结果是()(本题分值:2分)
【正确答案】C
A.k=3 a=2 b=3
B.k=3 a=3 b=2
C.k=2 a=3 b=2
D.k=2 a=2 b=3
36.下面程序的输出结果是()(本题分值:1分)
main()
{unsigned a=32768;
printf(〃a=%d\n〃,a);}
【正确答案】C
A.a=32768
B.a=32767
C.a=-32768
D.a=-1
37.执行下面语句后的输出结果为()(本题分值:1分)
int i=-1;
if(i<=0) printf(〃\n〃);
else printf(〃%%%%\n〃)
【正确答案】D
A.
B.%%%%
C.%%%%c
D.有语法错误,不能正确执行
38.对于条件表达式(M)?(a++):(a--),其中的表达式M等价于()(本题分值:1分)
【正确答案】C
A.M==0
B.M==1
C.M!=0
D.M!=1
39.下述程序段的输出结果是()(本题分值:1分)
int x=10;
int7nbspy=x++;
printf(〃%d,%d〃,(x++,y),y++);
【正确答案】A
A.11,10
B.11,11
C.10,10
D.10,11
40.若有以下的定义:
int a[]={1,2,3,4,5,6,7,8,9,10},p=a
则值为3的表达式是()(本题分值:1分)
【正确答案】A
A.p+=2,(p++)
B.p+=2,++p
C.p+=3,p++
D.p+=2,++p
41.假定所有变量均已正确说明,下列是程序段运行后x的值是()(本题分值:2分)
a=b=c=0;x=35;
if(!a) x--;
else if(b);
if(c) x=3;
else x=4;
【正确答案】B
A.34
B.4
C.35
D.3
42.在以下一组运算中,优先级最高的运算符是()(本题分值:2分)
【正确答案】C
A.<=
B.=
C.%
D.&&
43.若有以下定义和语句:
int w[2][3],(pw)[3];pw=w;
则对w数组元素的非法引用是()(本题分值:2分)
【正确答案】A
A.(w[0]+2)
B.(pw+1)[2]
C.pw[0][0]
D.(pw[1]+2)
44.若有以下程序片段: char str[ ]=〃ab\n\012\\\\〃; printf(〃%d〃,strlen(str));
上面程序片段的输出结果是()(本题分值:2分)
【正确答案】C
A.3
B.4
C.6
D.12
45.函数调用:strcat(strcpy(str1,str2),str3)的功能是()(本题分值:2分)
【正确答案】C
A.将串str1复制到串str2中后再连接到串str3之后
B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2复制到串str1中后再将串str3连接到串str1之后
D.将串str2连接到串str1之后再将串str1复制到串str3中
46.以下对C语言函数的有关描述中,正确的是()(本题分值:2分)
【正确答案】A
A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个源程序文件中
47.以下叙述中不正确的是()(本题分值:2分)
【正确答案】C
A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值
B.在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C中,外部变量的隐含类别是自动存储类别
D.在C中,函数形参能够说明为register变量
48.设有以下定义或语句,则输出的结果是(用small模式编译,指针变量占2个字节)()(本题分值:2分)
struct date
{long cat;
struct date next;
double dog;
}too;
printf(〃%d〃,sizeof(too));
【正确答案】D
A.20
B.16
C.14
D.12
49.设有定义:struct sk
{int a;float b;}data,p;
若有p=&data;,则对data中的a域的正确引用是()(本题分值:2分)
【正确答案】B
A.(p).data.a
B.(p).a
C.p->data.a
D.p.data.a
50.以下对枚举类型名的定义中正确的是()(本题分值:2分)
【正确答案】B
A.enum a={one,two,three};
B.enum a{one=9,two=-1,three};
C.enum a={〃one〃,〃two〃,〃three〃};
D.enum a{〃one〃,〃two〃,〃three〃};
二、填空题(每空2分,共40分)请将答案分别写在答题卡中序号【1】至【20】的横线上,答在试卷上不得分。
1、与十进制数101等值的二进制数为。(本题分值:2分)
【正确答案】
【1】1100101
2、DOS命令分为内部命令与外部命令,XCOPY命令属于命令。(本题分值:2分)
【正确答案】
【2】外部
3、设当前盘为A盘,当前系统提示符为“”,在不改变当前盘的情况下,显示C盘的当前目录路径,应使用命令。 (本题分值:2分)
【正确答案】
【3】CD C:
4、自动批处理文件名必须是。(本题分值:2分)
【正确答案】
【4】AUTOEXEC.BAT
5、设在当前盘当前目录下有两个文件W.TXT与P.TXT,现要将文件P.TXT连接到文件W.TXT的后面,若使用COPY命令,则完整的命令为。(本题分值:2分)
【正确答案】
【5】COPY W.TXT+P.TXT W.TXT
6、表示条件10<x<100或x<0的C语言表达式是。(本题分值:2分)
【正确答案】
【6】(x>10 x<100)||x<0
或(10<xx<100)||x<0
或x<0 ||(x>10x<100)
或0>x ||(10<xx<100)
7、以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最笾怠G胩羁铡?br define N 3
define M 4
void LineMax(int x[N][M])
{ int i,j,p;
for(i=0;i<N;i++)
{p=0;
for(j=1;j<M;j++)
if(x[i][p]<x[i][j]) ;
printf(〃The max value in line is %d\n〃,);
}
}
main()
{ int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};
;
}
(本题分值:6分)
【正确答案】
【7】p=j
【8】x[i][p]
【9】LineMax(x)
8、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。
main()
{float x[1000],sum=0.0,ave,a;
int n=0,i;
printf(〃Enter mark:\n〃);scanf(〃%f〃,a);
while(a>= 0.0n<1000)
{sum+=;x[n]=;
n++; scanf(〃%f〃,a);
}
ave= ;
printf(〃Output:\n〃);
printf(〃ave=%f\n〃,ave);
for(i=0;i<n;i++)
if() printf(〃%f\n〃,x[i]);
}
(本题分值:8分)
【正确答案】
【10】a
【11】a
【12】sum/n或sum/(float)n或sum/(double)n
【13】x[i]<ave或!(x[i]>=ave)或ave>x[i]
9、执行以下程序,输入-10的结果是,输入5的结果是,输入10的结果是,输入30的结果是。
(本题分值:8分)
【正确答案】
【14】0
【15】5
【16】10
【17】5
10、以下程序的功能是。
main()
{int num[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};
int sum=0,i;
for(i=0;i<10;i++)
if(num[i]>0)
sum=num[i]+sum;
printf(〃sum=%6d〃,sum);
}
(本题分值:2分)
【正确答案】
【18】计算数组num中大于零的数据之和
11、以下程序可以把从键盘上输入十进制数(long型)以二到十六进制数的形式输出,请填空。
include
main()
{char
b[16]={′0′,′1′,′2′,′3′,′4′,′5′,′6′,′7′,′8′,′9′,′A′,′B′,′C′,′D′,′E′,′F′};
int c[64],d,i=0,base;
long n;
printf(〃Enter a number:\n〃); scanf(〃%1d〃,n);
printf(〃Enter new base:\n〃); scanf(〃%1d〃,base);
do
{c[i]=;
i++;
n=n/base;
}while(n!=0);
printf(〃The result is:\n〃);
for(--i;i>=0;--i)
{?d=c[i];
printf(〃%c〃,b);
}
}
(本题分值:4分)
【正确答案】
【19】n%base
【20】 [d]
c语言程序设计(何钦铭 颜晖 第三版)课后习题答案
习 题 1
1.1 填空题
1.函数
2.主函数main();主函数main()
3.主函数main()
4.函数首部;函数体
5.{;}
6.顺序结构;选择结构;循环结构
7..c;.obj;.exe
1.2 思考题
1.答:结构化程序设计是指,为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。顺序结构,选择结构,循环结构
2.答:算法举贺亮是对具体问题求解步骤的一
种描述。计算机算法的表达工具通常采用以下几种方法:①用自然语言表示算法;②用流拍绝程图表示算法;③用伪代码表示算法;④用程序设计语言表示算法。
3.略
4.略
5.正宽略
1.3 编程题
1.答:
include "stdio.h"
main()
{ float a=10, b=20, h=5, s;
s=(a+b)h/2;
printf("s=%f " , s );
}
学习通网课C程序设计的答案的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于大学c程序设计同步网课、学习通网课C程序设计的答案的信息别忘了在本站进行查找喔。