中国石油大学华东c语言上机题答案2013
❶ c语言选择题,求解释
这题没有正确答案,输出应该是12
p+20指向了str[1], 也就是"中国石油大学"这个字符串,根据定义看,这是个GBK编码的汉字字符串,而strlen是按字节算长度的,一个汉字两个字节所以"中国石油大学" 长度是12
还有,定义里的 char*p =str,虽然按照C语言规则是可行的,但严格来说还是应该写成char*p=(char*)str
❷ 9月计算机二级《C语言》上机试题及答案
(1)一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、c、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是( )。
A.12345ABCDE
B.EDCBA54321
C.ABCDEl2345
D.54321EDCBA
(2)下列叙述中正确的是( )。
A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D.循环队列中元素的个数是由队头指针和队尾指针共同决定的
(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。
A.0(n)
B.D(n2)
C.O(1092n)
D.0(nl092n)
(4)下列叙述中正确的是( )。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
(5)数据流图中带有箭头的线段表示的是( )。
A.控制流
B.事件驱动
C.模块调用
D.数据流
(6)在软件开发中,需求分析阶段可以使用的工具是( )。
A.N—s图
B.DFD图
C.PAD图
D.程序流程图
(7)在面向对象方法中,不属于“对象”基本特点的是( )。
A.一致性
B.分类性
C.多态性
D.标识唯一性
(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。
A.一对一
B.一对多
C.多对一
D.多对多
(9)在数据管理技术发展的三个阶段中,数据共享最好的是( )。
A.人工管理阶段
B.文件系统阶段
C.数据库系统阶段
D.三个阶段相同
(10)有三个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为( )。
A.笛卡尔积
B.交
C.并
D.自然连接
(11)下列叙述中错误的是( )。
A.C程序可以由多个程序文件组成
B.一个c语言程序只能实现一种算法
C.c程序可以由一个或多个函数组成,
D.一个C函数可以单独作为一个C程序文件存在(12)以下选项中,能用作数据常量的是( )。
A.115L
B.0118
C.1.5el.5
D.0115
(13)按照c语言规定的用户标识符命名规则,不能出现在标识符中的是( )。
A.大写字母
B.下划线
C.数字字符
D.连接符
(14)设变量已正确定义并赋值,以下正确的表达式是( )。
A.X=Y+z+5,++Y
B.int(15.8%5)
C.X=Y*5=X+Z
D.X=25%5.0
(15)设有定义:int X=2;,以下表达式中,值不为6的是( )。
A.2*x.x+=2
B.x++,2*x
C.x*=(1+x)
D.x*!x+1
(16)有以下程序:
程序运行后的输出结果是( )。
A.2,3,3
B.2,3,2
C.2,3,1
D.2,2,1
(17)有以下程序:
已知字母A的ASCIl码为65,程序运行后的输出结果是( )。
A)E.68B.
B)D,69
C.E,D
D.输出无定值
(18)若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x—y)?(x++):(y++)中的条件表达式(x—Y)等价的是( )。
A.(x—Y<01Ix—Y>O)
B.(x—y<0)
C.(x—Y>0)
D.(x—Y==0)
(19)有以下程序:
程序运行后的输出结果是( )。
A.3
B.2
C.1
D.0
(20)若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是( )。
❸ c语言课后题答案
第一题
#include<stdio.h>
void main()
{ int i;
int count=1;
printf("请输入数据:");
scanf("%d",&i);
printf("逆序输出结果为:");
while(i/10)
{printf("%d ",i%10);
count++;
i=i/10; }
printf("%d\n",i%10);
printf("它是%d位数\n",count);
}
第二题
#include<stdio.h>
int fact(int n)
{
int i;
int f=1;
for(i=1;i<=n;i++)
f*=i;
return f;
}
float sum(int n)
{
float sum1=0;
int i;
for(i=1;i<=n;i++)
sum1+=1.0/fact(i);
return sum1;
}
void main()
{ int i;
float total;
printf("请输入数据:");
scanf("%d",&i);
total=sum(i);
printf("结果为:");
printf("%.5f ",total);
}
上面两个程序已经上机通过了。。。
❹ c语言教程习题答案
第一章
1.1 EXE
1.2 C OBJ EXE
1.3 顺序 选择 循环
第二章
一. 选择题
2.1 B 2.2 D 2.3 B 2.4 A 2.5 C 2.6 A 2.7 B
2.8 B 2.9 D 2.10 C 2.11 B 2.12 B 2.13 A
二. 填空题
2.14 11 12
2.15 4.2 4.2
2.16 { } 定义 执行语句
2.17 关键字 用户标识符
2.18 int float double
2.19 float a1=1; float a2=1;
2.20 存储单元
2.21 3.5
2.22 (a*b)/c a*b/c a/c*b
2.23 把常量10赋给变量s
2.24 位 1或0
2.25 8 127 0111111 -128 10000000
2.26 32767 -32768 1000000000000000
2.27 10 8 16
三. 上机改错题
2.28
#include "stdio.h"; 删除行尾的";"
main(); / * main function * / 删除")"后的";",注释中的*要紧靠“/”,即应为“/*”和“*/”
函数开始处遗失了一个“{”
float r,s ; /*/*r is radius*/,/* s is area of circuilar*/*/ 注释符号不可嵌套使用
r = 5.0 ;
s = 3.14159 * r * r ;
printf("%f\n",s) 行尾遗失了“;”
函数结束处遗失了一个“}”
2.29
#include "stdio.h"
main /* main function */ main后遗失了“()”
{
float a,b,c,v; /*a,b,c are sides, v is volume of cube */
a=2.0; b=3.0; c=4.0 行尾遗失了“;”
v=a*b*c;
printf("%f\n", v) 行尾遗失了“;”
}
第三章
一. 选择题
3.1 C 3.2 C 3.3 D 3.4 C 3.5 D 3.6 B 3.7 C 3.8 D 3.9 A 3.10 B
3.11 C 3.12 D 3.13 D 3.14 A 3.15 C 3.16 C 3.17 C 3.18 无答案 3.19 C 3.20 B
二. 填空题
3.21 (1)-2002500(2)i=-200,j=2500
(3)i=-200
j=2500
3.22 12 0 0
3.23 一条语句 ;
3.24 ;
3.25 100,25.81,1.89234 100 25.81 1.89234 100 25.81 1.89234
3.26 x=127,x= 127,x= 177,x= 7f,x= 127
3.27 x=127,x=127 ,x=$127 ,x=$000127,x=d
3.28 a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500
三. 编程题和改错题
3.29 修改后的程序如下:
main()
{
double a,b,c,s,v;
printf("input a,b,c:");
scanf("%lf%lf%lf",&a,&b,&c);
s =a*b;
v=a*b*c;
printf("a=%f,b=%f,c=%f\n", a,b,c);
printf("s=%f,v=%f\n",s,v);
}
3.30
#include
main()
{
int a=560,b=60;
printf("560 minute is %d hour and %d minute.\n",a/b,a%b);
}
3.31
#include
main()
{
int a,b;
a=1500;b=350;
printf("a div b is : %d\n",a/b);
printf("a mod b is : %d\n",a%b);
}
3.32
#include
main()
{
double a,b,c,ave;
printf ("input 3 double number : \n");
scanf ("%lf%lf%lf",&a,&b,&c);
printf ("%.1f\n",(a b c)/3);
}
3.33
#include
void main()
{
int a,b,c,t;
printf("请依次输入整数a,b,c:");
scanf("%d%d%d",&a,&b,&c);
printf("\n你输入的值是: a=%d,b=%d,c=%d\n",a,b,c);
t=b;b=a;a=c;c=t;
printf("交换之后的值是:a=%d,b=%d,c=%d\n",a,b,c);
}
第四章
一. 选择题
4.1 A 4.2 A 4.3 A 4.4 D 4.5 C 4.6 A 4.7 B 4.8 C 4.9 D 4.10 C
二. 填空题
4.11 非0 0
4.12 < > >= <=同级 == !=同级
4.13 ! && ||
4.15 !
4.16 a == b || a < c x > 4 || x < -4
4.17 1
4.18 x <= 0 1 > 0
4.19 3 2 2
4.20 *#
三. 编程题
4.21 略
4.22
#include
/* 检查日期的合法性 */
int checkdate(int year, int month, int day)
{
if(year < 1900 || year > 2005)
{
printf("输入的年份无效!\n");
return 0;
}
else if(month < 0 && month > 12)
{
printf("输入的月份无效!\n");
return 0;
}
else if(day <= 0 && day > 31)
{
printf("输入的日期无效!\n");
return 0;
}
else
{
switch(month)
{
case 4:
case 6:
case 9:
case 11:
if(day > 30)
{
printf("输入的日期无效!\n");
return 0;
}
break;
case 2:
if((year%4 == 0 && year0 != 0) || year@0 == 0)
{
if(day > 29)
{
printf("输入的日期无效!\n");
return 0;
}
}
else
{
if(day > 28)
{
printf("输入的出生日期无效!\n");
return 0;
}
}
break;
}/* end of switch(m0)*/
}
return 1;
}
void main()
{
int y0, m0, d0; /* 生日 */
int y1, m1, d1; /* 当前日期 */
int years, months, days; /* 实足年龄*/
printf("请输入学生的生日:");
scanf("%d%d%d", &y0,&m0,&d0);
if(checkdate(y0, m0, d0))
{
printf("请输入当前日期:");
scanf("%d%d%d", &y1,&m1,&d1);
/*当前日期合法性检查*/
if(!checkdate(y1, m1, d1))
{
return;
}
else if(y0 > y1)
{
printf("出生年份比当前年份晚!\n");
return;
}
else if(y0 == y1)
{
if(m0 > m1)
{
printf("出生年月比当前年月晚!\n");
return;
}
else if(m0 == m1)
{
if(d0 > d1)
{
printf("出生年月日比当前年月日晚!\n");
return;
}
}
}
}
/* 计算实足年龄 */
years = y1 - y0;
months = m1 - m0;
days = d1 - d0;
/* 修正实足年龄天数*/
if(days < 0)
{
months--;
switch(m1)
{
case 1:
case 5:
case 7:
case 10:
case 12:
days = 30;
break;
case 2:
case 4:
case 6:
case 8:
case 9:
case 11:
days = 31;
break;
case 3:
if((y1%4 == 0 && y10 != 0) || y1@0 == 0)
{
days = 29;
}
else
{
days = 28;
}
break;
}/* end of switch(m1) */
}/* end of if(days < 0) */
/* 修正实足年龄月数*/
if(months < 0)
{
months = 12;
years--;
}/* end of if(months < 0) */
printf("出生日期: %d年%d月%d日\n", y0, m0, d0);
printf("当前日期: %d年%d月%d日\n", y1, m1, d1);
printf("实足年龄: %d年%d月%d日\n", years, months, days);
return;
}
4.23
#include
void main()
{
int a;
printf ("请输入一个整数 :");
scanf ("%d",&a);
if (a%2==0)
{
printf ("%d 是偶数\n", a);
}
else
{
printf ("%d 是奇数\n", a);
}
}
4.24
#include
void main()
{
int a,b,c,temp,max;
printf ("请输入三个整数 :");
scanf ("%d %d %d",&a,&b,&c);
temp=(a>b)? a:b;
max=(temp>c)? temp:c;
printf ("\n");
printf ("你输入的数中最大的是 %d.\n",max);
}
4.25
(1)不嵌套的if语句
#include
void main()
{
int x,y;
printf("input x :");
scanf("%d",&x);
if ( x>-5 && x<0 )
{
printf("y is %d\n",y=x);
}
if ( x==0 )
{
printf("y is %d\n",y=x-1);
}
if ( x>0 && x<10 )
{
printf("y is %d\n",y=x 1);
}
if ( x>=10 || x<=-5)
{
printf("error\n");
}
}
(2)嵌套的if语句
#include
void main()
{
int x,y;
printf("input x :");
scanf("%d",&x);
printf("\n");
if(x < 0)
{
if(x > -5)
{
printf("y is %d.\n",y=x);
}
else
{
printf("error!\n");
}
}
if(0 == x)
{
printf("y is %d.\n",y=x-1);
}
if(x > 0)
{
if(x < 10)
{
printf("y is %d.\n",y=x 1);
}
else
{
printf("error!\n");
}
}
}
(3)if_else语句
#include
void main()
{
int x,y;
printf("input x :");
scanf("%d",&x);
if( x>-5 && x<0 )
{
printf("y is %d.\n",y=x);
}
else if( x==0 )
{
printf("y is %d.\n",y=x-1);
}
else if( x>0 && x<10 )
{
printf("y is %d.\n",y=x 1);
}
else
{
printf("error!\n");
}
}
(4)switch语句
#include
void main()
{
int x,y;
printf("input x : ");
scanf("%d",&x);
switch (x)
{
case -4:
case -3:
case -2:
case -1:
printf("y is %d.\n",y=x);
break;
case 0:
printf("y is %d.\n",y=x-1);
break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
printf("y is %d.\n",y=x 1);
break;
default:
printf("error!\n");
}
}
第五章
一. 选择题
5.1 D 5.2 C 5.3 B 5.4 C 5.5 C 5.6 B 5.7 D 5.8 A 5.9 D 5.10 D
二. 填空题
5.11 5 4 6
5.12 死循环
5.13 -1
5.14 11
5.15 d=1.0 k k<=n
5.16 x>=0 x
三. 编程题
5.17
#include
void main()
{
int i;
int sig = 1;
int sum = 0;
for(i=1; i<=101; i ,i )
{
sum = sig*i;
sig *= -1;
}
printf("sum=%d\n", sum);
}
5.18
(1)
#include
void main()
{
int i;
double m=1.0;
double e = 1.0;
for(i=1; i<50; i )
{
m *= i;
e = 1/m;
}
printf("e=%f\n",e);
}
(2)
#include
void main()
{
int i=1;
double m=1.0;
double e = 1.0;
while(1/m >= 0.0004)
{
m *= i;
e = 1/m;
i ;
}
printf("e=%f\n",e);
}
5.19
#include
void main()
{
int year;
int col = 0;
for(year=1600; year<=2000; year )
{
if((year%4 == 0 && year0 != 0) || year@0 == 0)
{
printf("%d\t", year);
col ;
if(col%5 == 0)
{
printf("\n");
}
}
}
printf("\n");
}
5.20
#include
#define N 7
void main()
{
int i;
int j;
int m;
int k = N/2;
for(i=0; i {
m = i-k;
if(m < 0)
{
m *= -1;
}
for(j=0; j {
printf(" ");
}
for(j=0; j<2*(k-m) 1; j )
{
printf("*");
}
printf("\n");
}
}
第六章
一. 选择题
6.1 B 6.2 D 6.3 A 6.4 A 6.5 B 6.6 D 6.7 D 6.8 B 6.9 A 6.10 A 6.11 C
二. 填空题
6.12 -1
6.13 1
6.14 ctype.h
6.15 1
6.16 10A 20B 30C 40D
6.17 7.29 101.298AB
6.18 A7.29B101.298
6.19 A B C (每个字符后有三个空格)
三. 编程题
6.20
#include
#define N 80
void main()
{
char str[N];
int iLoop = 0;
gets(str);
while(str[iLoop])
{
printf("%c-%d\t", str[iLoop],str[iLoop]);
iLoop ;
if(iLoop%3 == 0)
{
printf("\n");
}
}
printf("\n");
}
6.21
#include
#define N 80
void main()
{
char str[N];
int num = 0;
int iLoop = 0;
gets(str);
while(str[iLoop])
{
if(str[iLoop] >= '0' && str[iLoop] <= '9')
{
num = 10*num (str[iLoop] - '0');
}
iLoop ;
}
printf("%d\n",num);
}
6.22
#include
#include
#define N 80
void main()
{
char str[N];
int num = -1;
do
{
gets(str);
num ;
}while(strcmp(str, "EOF"));
printf("您输入了%d行字符!\n",num);
}
6.23
#include
#define N 80
void main()
{
char str[N];
int iLoop = 0;
int num = 0;
gets(str);
while(str[iLoop] && iLoop < N)
{
if(str[iLoop] >= 'a' && str[iLoop] <= 'z')
{
num ;
}
iLoop ;
}
printf("您输入了字符中有%d个小写字母!\n",num);
}
6.24
#include
void main()
{
int line;
int iLoop1;
int iLoop2;
printf("请输入图案的行数(不大于26):");
scanf("%d", &line);
for(iLoop1 = 0; iLoop1 < line; iLoop1 )
{
for(iLoop2 = 0; iLoop2 < line - iLoop1; iLoop2 )
{
printf(" ");
}
for(iLoop2 = 0; iLoop2 < 2*iLoop1 1; iLoop2 )
{
printf("%c",iLoop1 'A');
}
printf("\n");
}
}
第七章
一. 选择题
7.1 C 7.2 C 7.3 B 7.4 C 7.5 A 7.6 D 7.7 A
二. 填空题
7.8 12
7.9 9.000000
7.10 4
7.11 n=1 s
7.12 <=y z*x
7.13 1 s*i 0 f(k)
三. 程序调试和编程题
7.14
fun(int n)
{ int k,yes;
for(k=2; k<=n/2; k )
{
if(n%k == 0) { yes = 0; break;}
else yes = 1;
}
return yes;
}
7.15
int mymod(int a, int b)
{
return a%b;
}
7.16
double fun(int n)
{
double sum = 0;
int iLoop;
int sig = -1;
for(iLoop=1; iLoop<=n; iLoop )
{
sig *= -1;
sum = sig*1.0/iLoop;
}
return sum;
}
7.17
double fun(int n)
{
double t = 1.0;
int iLoop;
long tmp;
for(iLoop=2; iLoop<=n; iLoop )
{
tmp = iLoop*iLoop;
t -= 1.0/tmp;
}
return t;
}
7.18
#include
#include
double fun(double x)
{
return x*x 5*x 4;
}
void main()
{
int x = 2;
printf("y1=%f\n", fun(x));
printf("y2=%f\n", fun(x 15));
printf("y3=%f\n", fun(sin(x)));
}
2005-7-29 17:53 myhome1702
第八章
一. 选择题
8.1 A 8.2 B 8.3 B 8.4 C 8.5 B 8.6 B 8.7 C 8.8 D 8.9 B 8.10 C 8.11 C 8.12 C
二. 填空题
8.13 110
8.14 7 1
8.15 (1)char *p=&ch; (2) p=&ch; (3)scanf("%c",p); (4)*p='A'; (5)printf("%c",*p);
8.16 (1)s=p 3; (2)s=s-2 (3)50 (4)*(s 1) (5)2 (6)10 20 30 40 50
三. 编程题
8.17
void fun(double x, double y, double *sum, double *div)
{
*sum = x y;
*div = x - y;
return;
}
8.18
void fun(double x, double y, double z, double *max, double *min)
{
*max = x;
*min = x;
if(*max < y)
{
*max = y;
}
if(*max < z)
{
*max = z;
}
if(*min > y)
{
*min = y;
}
if(*min > z)
{
*min = z;
}
return;
}
第九章
一. 选择题
9.1 D 9.2 A 9.3 A 9.4 C 9.5 C 9.6 A 9.7 B 9.8 D 9.9 C 9.10 C
9.11 C 9.12 D 9.13 D 9.14 A 9.15 A 9.16 A 9.17 C 9.18 C
二. 填空题
9.19 9 0
9.20 6
9.21 12
9.22 3
9.23 2721
9.24 -850,2,0
9.25 k=p k
9.26 (c=getchar()) c-'A'
三. 编程题
9.27
#include
#define N 81
int main()
{
int counter[10] = {0};
int iLoop = 0;
char str[N];
gets(str);
while(str[iLoop])
{
if(str[iLoop] >= '0' && str[iLoop] <= '9')
{
counter[str[iLoop] - '0'] ;
}
iLoop ;
}
for(iLoop=0; iLoop < 10; iLoop )
{
printf("%d - %d\n", iLoop, counter[iLoop]);
}
return 0;
}
9.28
void fun(int array[], int arraysize, int start)
{
int iLoop;
if(start < arraysize-1)
{
if(start <=0)
{
start = 1;
}
for(iLoop = start; iLoop < arraysize; iLoop )
{
array[iLoop-1] = array[iLoop];
}
}
for(iLoop = 0; iLoop < arraysize; iLoop )
{
printf("No.%d = %d\n", iLoop, array[iLoop]);
}
}
9.29
int fun(int arry1[], int arry2[], int arrysize)
{
int iLoop;
int counter = 0;
for(iLoop = 0; iLoop < arrysize; iLoop )
{
if(arry1[iLoop] % 2)
{
arry2[counter ] = arry1[iLoop];
}
}
return counter;
}
9.30
void fun(char array[], int arraysize)
{
int iLoop1;
int iLoop2;
char temp;
/* 冒泡排序 */
for(iLoop1 = 0; iLoop1 < arraysize - 1; iLoop1 )
{
for(iLoop2 = 0; iLoop2 < arraysize - 1 - iLoop1; iLoop2 )
{
if(array[iLoop2] < array[iLoop2 1])
{
temp = array[iLoop2];
array[iLoop2] = array[iLoop2 1];
array[iLoop2 1] = temp;
}
}
}
}
9.31
#include
void fun(int array[], int arraysize, int inertNumber)
{
int iLoop;
int iLoop2;
if(array[0] < array[arraysize-1])
{
for(iLoop = 0; iLoop< arraysize; iLoop )
{
if(array[iLoop] > inertNumber)
{
for(iLoop2 = arraysize - 1; iLoop2 >= iLoop; iLoop2--)
{
array[iLoop2 1] = array[iLoop2];
}
array[iLoop] = inertNumber;
break;
}
}
if(iLoop >= arraysize)
{
array[arraysize] = inertNumber;
}
}
else
{
for(iLoop = 0; iLoop< arraysize; iLoop )
{
if(array[iLoop] < inertNumber)
{
for(iLoop2 = arraysize - 1; iLoop2 >= iLoop; iLoop2--)
{
array[iLoop2 1] = array[iLoop2];
}
array[iLoop] = inertNumber;
break;
}
}
if(iLoop >= arraysize)
{
array[arraysize] = inertNumber;
}
}
}
int main()
{
int iLoop;
int a[20] = {7,6,5,3,2,1};
for(iLoop = 0; iLoop < 6; iLoop )
{
printf("%d ", a[iLoop]);
}
printf("\n");
fun(a, 6, 0);
for(iLoop = 0; iLoop < 7; iLoop )
{
printf("%d ", a[iLoop]);
}
printf("\n");
fun(a, 7, 4);
for(iLoop = 0; iLoop < 8; iLoop )
{
printf("%d ", a[iLoop]);
}
printf("\n");
fun(a, 8, 8);
for(iLoop = 0; iLoop < 9; iLoop )
{
printf("%d ", a[iLoop]);
}
printf("\n");
return 0;
}
9.32
int fun(int number, int array[])
{
int iLoop = 0;
int iLoop2;
int binLen;
int midNumber;
int div;
int remain;
midNumber = number;
do
{
div = midNumber/2;
remain = midNumber%2;
midNumber = div;
array[iLoop ] = remain;
}while(midNumber);
binLen = iLoop;
for(iLoop2 = 0, iLoop = binLen - 1; iLoop2 < iLoop; iLoop2 , iLoop--)
{
midNumber = array[iLoop2];
array[iLoop2] = array[iLoop];
array[iLoop] = midNumber;
}
return binLen;
}
9.33
#include
#include
#define N 15
void fun(int array[], int arraysize)
{
int x;
int iLoop;
int iLoop2;
for(iLoop = 0; iLoop < arraysize; iLoop )
{
iLoop2 = 0;
x = rand() ;
do
{
if(x == array[iLoop2] && iLoop > 0)
{
x = rand() ;
iLoop2 = 0;
}
iLoop2 ;
}while(iLoop2 < iLoop);
array[iLoop] = x;
}
}
int main()
{
int a[N];
int iLoop;
fun(a, N);
for(iLoop = 0; iLoop < N; iLoop )
{
printf("%d\n", a[iLoop]);
}
return 0;
}
第十章
一. 选择题
10.1 C 10.2 B 10.3 C 10.4 B 10.5 C 10.6 A 10.7 C 10.8 A 10.9 C 10.10 C
二. 填空题
10.11 GFEDCB
10.12 XYZ
10.13 SO
10.14 10
10.15 Itis
10.16 strlen(str)-1 j--
10.17 3
10.18 goodgood!
三. 编程题
10.19
char* mygets(char *str)
{
int iLoop = 0;
char ch;
while((ch=getchar()) != '\n')
{
str[iLoop ] = ch;
}
str[iLoop] = '\0';
return str;
}
char * myputs(char *str)
{
int iLoop = 0;
while(str[iLoop])
{
putchar(str[iLoop ]);
}
putchar('\n');
return str;
}
10.20
#include
#include
int fun(char *str)
{
int len;
int iLoop1;
int iLoop2;
int result = 1;
len = strlen(str);
for(iLoop1 = 0, iLoop2 = len - 1; iLoop1 < iLoop2; iLoop1 , iLoop2--)
{
if(str[iLoop1] != str[iLoop2])
{
result = 0;
break;
}
}
return result;
}
int main()
{
char a[20] = "ABCDCBA";
char b[20] = "ABCDEBA";
printf("%d\n", fun(a));
printf("%d\n", fun(b));
return 0;
}
10.21
char fun(char *str, int pos)
{
int len;
int iLoop;
char ch;
len = strlen(str);
if(pos > len)
{
return NULL;
}
ch = str[pos];
for(iLoop = pos; iLoop < len - 1; iLoop )
{
str[iLoop] = str[iLoop 1];
}
str[len-1] = '\0';
return ch;
}
2005-7-29 17:54 myhome1702
第十一章
一. 选择题
11.1 D 11.2 B 11.3 A 11.4 C
二. 填空题
11.5 IJKLEFGHABCD
11.6 7
11.7 8
11.8 *(s j) i 1 i
11.9 17
11.10 (*fun)() (*fun)(a i*h)/h mypoly
三. 编程题
11.11
#include
#include
#define N 81
int main(int argc, char **argv)
{
char sig;
int dig;
int pos;
char str[N] = {'\0'};
char outStr[N] = {'\0'};
if(argc < 2)
{
sig = '-';
dig = 10;
}
else
{
sig = argv[1][0];
dig = argv[1][1] - '0';
}
printf("请输入一个字符串:");
gets(str);
if(sig == '-')
{
pos = strlen(str) - dig;
if(pos <= 0)
{
pos = 0;
}
strcpy(outStr, str pos);
}
else if(sig == ' ')
{
strcpy(outStr, str);
pos = strlen(outStr);
if(pos > dig)
{
pos = dig;
}
outStr[pos] = '\0';
}
printf("处理后的字串为:");
printf("%s\n", outStr);
return 0;
}
11.12
#include
#include
void movebin(char *bin)
{
int len;
int iLoop;
len = strlen(bin);
for(iLoop = len; iLoop > 0; iLoop--)
{
bin[iLoop] = bin[iLoop - 1];
}
return;
}
void fun(int n, char *bin)
{
int pos;
pos = strlen(bin);
if(n == 0)
{
return;
}
if(n == 1)
{
movebin(bin);
bin[0] = '1';
return;
}
movebin(bin);
bin[0] = (n%2) '0';
n /= 2;
fun(n, bin);
return;
}
int main()
{
int a = 4;
char bin[50] = {""};
fun(a, bin);
printf("%s\n", bin);
return 0;
}
11.13
#include
long fun(int n)
{
if(n == 1)
{
return n;
}
else
{
return fun(n-1) n;
}
}
int main()
{
int num;
int sum;
printf("请输入一个自然数:");
scanf("%d", &num);
sum = fun(num);
printf("结果是:%d\n", sum);
return 0;
}
11.14
#include
int fun(int n)
{
if(n == 0 || n == 1)
{
return 1;
}
else
{
return fun(n-1) fun(n-2);
}
}
int main()
{
int num;
int result;
printf("请输入一个自然数:");
scanf("%d", &num);
result = fun(num);
printf("斐波拉契级数为:%d\n", result);
return 0;
}
第十二章
一. 选择题
12.1 B 12.2 B 12.3 A 12.4 C 12.5 D 12.6 B 12.7 A 12.8 A
二. 填空题
12.9 2,5,1,2,3,-2
12.10 2468
第十三章
一. 选择题
13.1 A 13.2 C 13.3 B 13.4 C 13.5 D 13.6 D 13.7 D
二. 填空题
13.8 ar=9 ar=9 ar=11
13.9 int* s *b
三. 编程题
13.10
#define MYALPHA(C) ((C>='A' && C<='Z') || (C>='a' && C<='z')) ? 1 : 0
13.11
#define SWAP(t,x,y) {t tmp; tmp=x; x=y; y=tmp;}
13.12
#include
#include
int main()
{
int *p;
int tmp;
int iLoop;
int iLoop2;
p = (int *)malloc(sizeof(int)*3);
scanf("%d%d%d", p,p 1,p 2);
for(iLoop = 0; iLoop < 2; iLoop )
{
for(iLoop2 = 0; iLoop2 < 2 - iLoop; iLoop2 )
{
if(*(p iLoop2) > *(p iLoop2 1))
{
tmp = *(p iLoop2);
*(p iLoop2) = *(p iLoop2 1);
*(p iLoop2 1) = tmp;
}
}
}
printf("%d %d %d\n", *p, *(p 1), *(p 2));
free(p);
p = NULL;
return 0;
}
字太多了 粘不完
❺ c语言关于strlen函数的
设有定义语句:char str[][20]={"Beijing","123456"},*p=str; /*把逗号去掉,把中文变数字*/
则printf("%d\n",strlen(p+20)); 输出结果是
A)10 B) 6 C) 0 D) 20
选择B
希望回答对你有帮助