你把这个拿去试试,我到网上找了一个帮你改的,看看可以不,
#include<stdioh>
int main()
{
//int a[10][10];
int n;
printf("please input the line:\n");
scanf("%d\n",&n);
getchar();
int i,j;
for(i=0;i<n;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<n;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
特点不同。
特点不同:C程序设计谭浩强版本的第四版比较简单被普遍认为是学习C语言的好教材,并被全国大多数高校选用。苏小红设计的第四版比较困难该教材兼具趣味性和实用性,以应用为背景,面向编程实践和问题求解能力的训练,从实际问题出发,在案例的不断深化中逐步引出知识点,形成程序设计方法由自底向上到自顶向下和数据结构由简单到复杂的两条逻辑清晰的主线。
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。
(第一题)#include <stdioh>
void main()
{
int gy(int m, int n);
int x,y,max, min;
printf("请输入两个大于0的正整数,以空格或者回车间隔:\n");
scanf("%d%d",&x,&y);
while(x<1 || y<1)
{
printf("输入数据不正确,请重新输入。\n");
printf("请输入两个大于0的正整数,以空格或者回车间隔:\n");
scanf("%d%d",&x,&y);
}
max=gy(x,y);
min=xy/max;
printf("%d与%d的最大公约数是:%d,最小公倍数是:%d\n",x,y,max,min);
}
int gy(int m, int n)
{
int max, t;
while(m%n != 0) // while(m%n)
{
t=n; n=m%n; m=t;
}
max=n;
return max;
}
第二题#include <stdioh>
#include <mathh>
void main()
{
void root(double a, double b, double c);
double a, b, c;
printf("请输入一元二次方程的系数,用空格或者回车间隔:\n");
scanf("%lf%lf%lf",&a,&b,&c);
root(a,b,c);
}
void root(double a, double b, double c)
{
double disc, x1, x2, real , imag;
disc = bb-4ac;
if(disc>0)
{
x1 = (-b+sqrt(disc))/(2a);
x2 = (-b-sqrt(disc))/(2a);
printf("方程有两个实根,分别是:%f 与 %f\n", x1, x2);
}
else if(disc==0)
{
x1 = (-b)/(2a);
printf("方程有一个实根,它是:%f\n ", x1);
}
else
{
real=(-b)/(2a);
imag=sqrt(-disc)/(2a);
printf("方程有两个虚根,分别是:%f+%fi, %f-%fi\n", real,imag,real,imag);
}
}
测试1:请输入一元二次方程的系数,用空格或者回车间隔:1 2 1
方程有一个实根,它是:-1000000
测试2:请输入一元二次方程的系数,用空格或者回车间隔:1 6 5
方程有两个实根,分别是:-1000000 与 -5000000
测试3:请输入一元二次方程的系数,用空格或者回车间隔:1 1 1
方程有两个虚根,分别是:-0500000+0866025i, -0500000-0866025i
第三题#include <stdioh>
#include <mathh>
void main()
{
int isprime(int n);
int n;
scanf("%d",&n);
while(n<2)
{
printf("Please reinput(n>=2):");
scanf("%d",&n);
}
if(isprime(n))
printf("%d是素数。\n",n);
else
printf("%d不是素数。\n",n);
}
int isprime(int n)
{
int i,k=sqrt(n);
for(i=2;i<=k;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
第四题#include <stdioh>
#include <mathh>
void main()
{
void printA(int a[3][3]);
void reverse(int a[3][3]); //转置函数的声明
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
printf("原二维数组:\n");
printA(a);
reverse(a); //函数转置
printf("转置后的数组:\n");
printA(a);
}
void printA(int a[3][3])
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%6d",a[i][j]);
}
printf("\n");
}
}
void reverse(int a[3][3]) //函数转置的定义
{
int i,j,t;
for(i=0;i<3;i++)
{
for(j=0;j<i;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
}
第五题#include <stdioh>
#include <stringh>
void main()
{
char str[30];
void fanxu(char p);
printf("请输入一个字符串:");
gets(str);
printf("进行反序\n");
fanxu(str);
printf("反序后的字符串:");
puts(str);
}
void fanxu(char p)
{
int len=strlen(p);
char q,c;
q=p+len-1; //字符串最后一个字符位置
for(;p<q;p++,q--)
{
c=p; p=q; q=c;
}
}
第六题#include <stdioh>
#include <stringh>
void main()
{
char str1[60],str2[30];
void str_copy(char p, char q);
printf("请输入第一个字符串:");
gets(str1);
printf("请输入第二个字符串:");
gets(str2);
str_copy(str1, str2);
printf("连接后的字符串:");
puts(str1);
}
void str_copy(char p, char q)
{
for(;p!='\0';p++);
for(;q!='\0';p++,q++)
{
p=q;
}
p='\0';
}
(0808)#include <stdioh>
#include <stringh>
void main()
{
char str[80];
void insert(char str[]); //插入空格的函数
printf("请输入一个字符串:");
gets(str);
insert(str); //插入空格
puts(str); //输出字符串
}
void insert(char str[])
{
int len, i;
len=strlen(str);
for(i=len; i>0; i--) // 设置空格
{
str[2i]=str[i];
str[2i-1]=' ';
}
}
(0809)#include <stdioh>
int letter; //字母个数
int digit; //数字个数
int space; //空格个数
int others; //其它字母个数
void main()
{
void count(char str[]); //统计个数的函数的声明
char s[81];
printf("请输入一个字符串:");
gets(s);
letter=0; digit=0;
space=0; others=0;
count(s);
printf("字符串中共有 %d 个字母,%d 个数字,%d 个空格,%d个其它字母。\n",letter,digit,space,others);
}
void count(char str[]) //统计个数的函数的定义
{
int i;
char c;
for(i=0; str[i]!='\0';i++)
{
c=str[i];
if(c>='a' && c<='z' || c>='A' && c<='Z')
{ letter++; }
else if(c>='0' && c<='9')
{ digit++; }
else if(c==' ')
{ space++; }
else
{ others++; }
}
}
(0810)#include <stdioh>
#include <stringh>
void main()
{
int i;
char line[81];
int alphabetic(char c); //判断一个字符是空格还是其它字母
int longest(char str[]);//寻找最长单词的起始位置
printf("请输入一行字符串:\n");
gets(line);
printf("最长的字符串是:");
for(i=longest(line); alphabetic(line[i]); i++)
{ printf("%c",line[i]);}
printf("\n");
}
int alphabetic(char c) //如果为空格返回0,其它字母返回1
{
if(c!=' ')
return 1;
else
return 0;
}
int longest(char str[])
{
int len=0; // 记录每一个单词的长度
int length=0; // 记录最长单词的长度
int flag=1; // 其值为0时表示当前位置处于字符串中,为1时表示当前位置为空格
int place=0; // 记录最长字符串(单词)的起始位置
int point; // 每个字符串的起始位置
for(int i=0; i<=strlen(str); i++)
{
if(alphabetic(str[i])) //如果当前位置为非空格
{
if(flag) //如果前一字符为空格
{
point = i; // 设置当前单词的起始位置
flag = 0; // flag设为0,表示处于单词中
}
else //如果前一字符为非空格
{ len++; } // 单词的长度加1
}
else //当前位置为空格
{
flag = 1; //flag设为1,表示当前位置为空格
if(len >= length) //如果最近单词的长度大于最长长度
{
length = len;
place = point; //设置最长单词的起始位置
len = 0; //len归0,重新开始计算单词的长度
}
}
}
return place;
}
(0811)#include <stdioh>
#include <stringh>
void main()
{
void inputNum(int a[], int n);
void outputNum(int a[], int n);
void bubble(int a[], int n);
int a[11], n;
printf("请输入你要排序的数的个数:");
scanf("%d",&n);
inputNum(a,n);
outputNum(a,n);
bubble(a,n);
printf("从小到大排序为:\n");
outputNum(a,n);
}
void inputNum(int a[], int n)
{
int i;
for(i=1;i<=n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
}
void outputNum(int a[], int n)
{
int i;
for(i=1;i<=n;i++)
{
printf("%6d",a[i]);
}
printf("\n");
}
void bubble(int a[], int n)
{
int i,j,t;
for(i=1;i<=n-1;i++)
{
for(j=1; j<=n-i; j++)
{
if(a[j]>a[j+1])
{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
}
}
}
(0813)#include <stdioh>
void main()
{
double lrd(int, double);
double x;
int n;
printf("请输入n阶勒让德多项式的阶数:\n");
scanf("%d",&n);
printf("请输入x的值:\n");
scanf("%lf",&x);
printf("参数为%f 的 %d 阶勒让德多项式的值为 %f\n",x,n,lrd(n,x));
}
double lrd(int n, double x)
{
if(n==0)
return 1;
else if(n==1)
return x;
else
return ((2n-1)x - lrd(n-1,x) -(n-1)lrd(n-2,x))/n;
}
/
测试1:请输入n阶勒让德多项式的阶数:0请输入x的值:9999参数为99990000 的 0 阶勒让德多项式的值为 1000000
测试2:请输入n阶勒让德多项式的阶数:1请输入x的值:9999
参数为99990000 的 1 阶勒让德多项式的值为 99990000
测试3:请输入n阶勒让德多项式的阶数:2
请输入x的值:9999 参数为99990000 的 2 阶勒让德多项式的值为 99490000
测试4:请输入n阶勒让德多项式的阶数:10
请输入x的值:11
参数为1100000 的 10 阶勒让德多项式的值为 0888677
(0817)#include <stdioh>
void main()
{
int num;
void convert(int num); // 转换为字符串的函数的声明
printf("请输入一个整数:\n");
scanf("%d",&num);
printf("转换成字符串:");
if(num<0)
{
putchar('-');
num = -num;
}
convert(num);
printf("\n");
}
void convert(int n)
{
int i;
if((i = (n/10)) != 0)
{
convert(i);
}
putchar(n%10 + '0');
}
(0818)#include <stdioh>
int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void main()
{
int year,month,day;
int days;
int count(int year,int month, int day);
int leap(int y);
printf("请输入年份:");
scanf("%d",&year);
while(year<=0)
{
printf("年份不能为负,请重新输入:");
scanf("%d",&year);;
}
if(leap(year)) //如果为闰年,2月份的天数为29
{ d[2]=29; }
printf("输入月份:");
scanf("%d",&month);
while(month<1 || month>12)
{
printf("月份在1月和12月之间,你的输入有误,请重新输入:");
scanf("%d",&month);
}
printf("输入日数:");
scanf("%d",&day);;
while(day<1 || day >d[month])
{
printf("日数应在1和%d之间,请重新输入:",d[month]);
scanf("%d",&day);
}
days=count(year,month,day);
printf("%d年%d月%d日是该年的第%d天\n",year,month,day,days);
}
int leap(int y)
{
if(y%4==0 && y%100!=0 || y%400==0)
return 1;
else
return 0;
}
int count(int year,int month, int day)
{
int i,days=0;
for(i=1; i<month; i++)
{ days += d[i]; }
days+=day;
return days;
}
(08050)#include <stdioh>
#include <stringh>
void main()
{
char str[30];
void fanxu(char str[]);
printf("请输入一个字符串:");
gets(str);
printf("进行反序\n");
fanxu(str);
printf("反序后的字符串:");
puts(str);
}
void fanxu(char str[])
{
int len=strlen(str);
int i,j;
char c;
i=0; j=len-1;//i,j分别存储第一个字符和最后一个字符的下标
for(;i<j; i++,j--)
{
c=str[i]; str[i]=str[j]; str[j]=c;
}
}
(08051)#include <stdioh>
#include <stringh>
void main()
{
char str[30];
void fanxu(char s[]);
printf("请输入一个字符串:");
gets(str);
printf("进行反序\n");
fanxu(str);
printf("反序后的字符串:");
puts(str);
}
void fanxu(char s[])
{
int len=strlen(s);
int i;
char c;
for(i=0;i<=len/2;i++)
{
c=s[i];
s[i]=s[len-i-1];
s[len-i-1]=c;
}
}
(08061)#include <stdioh>
#include <stringh>
void main()
{
char str1[60],str2[30];
void str_copy(char s1[], char s2[]);
printf("请输入第一个字符串:");
gets(str1);
printf("请输入第二个字符串:");
gets(str2);
str_copy(str1, str2);
printf("连接后的字符串:");
puts(str1);
}
void str_copy(char s1[], char s2[])
{
int i,j;
for(i=0;s1[i];i++); // s1[i]!='\0'
for(j=0;s1[i]=s2[j];i++,j++);
// (s1[i]=s2[j])!='\0'
}
(08110)#include <stdioh>
#include <stringh>
void main()
{
void inputNum(char a[], char n);
void outputNum(char a[], char n);
void bubble(char a[], char n);
char a[11], n;
printf("请输入你要排序的数的个数:");
scanf("%d",&n);
inputNum(a,n);
outputNum(a,n);
bubble(a,n);
printf("从小到大排序为:\n");
outputNum(a,n);
}
void inputNum(char a[], char n)
{
char i;
printf("请连续输入%d个字符:",n);
fflush(stdin); //一般在输入字符或者字符串之前要清空输入缓冲区
for(i=1;i<=n;i++)
{
scanf("%c",&a[i]);
}
}
void outputNum(char a[], char n)
{
char i;
for(i=1;i<=n;i++)
{
printf("%2c",a[i]);
}
printf("\n");
}
void bubble(char a[], char n)
{
char i,j,t;
for(i=1;i<=n-1;i++)
{
for(j=1; j<=n-i; j++)
{
if(a[j]>a[j+1])
{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
}
}
}
(08112)#include <iostreamh>
#include <iomaniph>
void main()
{
void inputNum(int a[], int n);
void outputNum(int a[], int n);
void bubble(int a[], int n);
int a[11], n;
cout<<"请输入你要排序的数的个数:";
cin>>n;
while(n<1 || n>10)
{
cout<<"请重新输入,(1<=n<=10):";
cin>>n;
}
inputNum(a,n);
outputNum(a,n);
bubble(a,n);
cout<<"从小到大排序为:\n";
outputNum(a,n);
}
void inputNum(int a[], int n)
{
int i;
for(i=1;i<=n;i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
}
void outputNum(int a[], int n)
{
int i;
for(i=1;i<=n;i++)
{
cout<<setw(6)<<a[i];
}
cout<<endl;
}
void bubble(int a[], int n)
{
int i,j,t;
for(i=1;i<=n-1;i++)
{
for(j=1; j<=n-i; j++)
{
if(a[j]>a[j+1])
{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
}
}
}
(08181)#include <iostreamh>
#include <iomaniph>
int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void main()
{
int year,month,day;
int days;
int count(int year,int month, int day);
int leap(int y);
cout<<"请输入年份:";
cin>>year;
while(year<=0)
{
cout<<"年份不能为负,请重新输入:";
cin>>year;
}
if(leap(year)) //如果为闰年,2月份的天数为29
{ d[2]=29; }
cout<<"输入月份:";
cin>>month;
while(month<1 || month>12)
{
cout<<"月份在1月和12月之间,你的输入有误,请重新输入:";
cin>>month;
}
cout<<"输入日数:";
cin>>day;
while(day<1 || day >d[month])
{
cout<<"日数应在1和"<<d[month]<<"之间,请重新输入:"<<endl;
cin>>day;
}
days=count(year,month,day);
cout<<year<<"年"<<month<<"月"<<day<<"日是该年的第"<<days<<"天\n";
}
int leap(int y)
{
if(y%4==0 && y%100!=0 || y%400==0)
return 1;
else
return 0;
}
int count(int year,int month, int day)
{
int i,days=0;
for(i=1; i<month; i++)
{ days += d[i]; }
days+=day;
return days;
}
中文名:C语言程序设计
作者:吴国凤
图书分类:科技
资源格式:PDF
版本:高清文字版
出版社:合肥工业大学出版社
书号:9787565008405
发行时间:2012年8月1日
地区:大陆
语言:简体中文
本书是高清文字版非扫描拒绝模糊享受清晰!
无法下载的用户请到评论区一楼查看网盘地址!
内容介绍:
本文章由第1章 C语言概述、第2章 数据类型、运算符与表达式等组成。
内容截图:
目录:
第1章 C语言概述10
11 程序设计与C语言10
12 C程序初识12
13 程序设计方法与算法16
14 C程序运行环境与学习方法20
15 例题精解24
16 本章小结25
习题25
第2章 数据类型、运算符与表达式27
21 C语言基础27
22 常量30
23 变量32
24 基本运算符与表达式33
25 不同数据类型间的转换和运算39
26 例题精解41
27 本章小结42
习题43
第3章 顺序结构程序设计45
31 C语言中的语句45
32 数据的输入输出47
33 例题精解54
34 本章小结57
习题57
第4章 选择结构程序设计62
41 关系运算和逻辑运算62
42 if语句65
43 switch语句70
44 例题精解72
45 本章小结75
习题75
第5章 循环结构程序设计80
51 概述80
52 while语句80
53 dowhile语句82
54 for语句84
55 循环嵌套88
56 break语句、continue语句和goto语句与标号90
57 例题精解92
58 本章小结97
习题97
第6章 数组105
61 一维数组105
62 二维数组108
63 字符数组和字符串112
64 例题精解117
65 本章小结121
习题122
第7章 指针126
71 指针的基本概念126
72 指针与数组133
73 指针数组和指向指针的指针142
74 例题精解147
75 本章小结149
习题150
第8章 函数154
81 函数的基本概念154
82 函数参数和函数的值155
83 函数的调用157
84 数组作为函数参数158
85 指针作为函数参数161
86 嵌套调用与递归调用163
87 存储类型166
88 命令行参数170
89 例题精解171
810 本章小结175
习题175
第9章 编译预处理181
91 宏定义181
92 文件包含184
93 条件编译185
94 例题精解186
95 本章小结188
习题189
第10章 结构体与共用体192
101 结构体192
102 共用体208
103 枚举211
104 用户定义类型212
105 例题精解213
106 本章小结214
习题215
第11章 位运算219
111 位运算的概念219
112 位运算219
113 位域(位段)223
114 本章小结226
习题226
第12章 文件228
121 文件概念228
122 文件指针229
123 文件的打开与关闭230
124 文件的读写231
125 文件的定位 *** 作238
126 文件的错误检测240
127 本章小结241
习题241
附录243
1 常用字符与ASCII代码对照表243
2 C语言运算符的优先级与结合性244
3 C库函数245
4 常见错误信息表252
下载地址:
2分,共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
1微型计算机的运算器、控制器及内存储器组合在一起,称之为()(本题分值:1分)
D
AALU
BCPU
CMPU
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
AScroll-Lock
BNum-Lock
CPgDn
DPrtSc(Print Screen)
6能将高级语言源程序转换成目标程序的是()(本题分值:1分)
C
A调试程序
B解释程序
C编译程序
D编辑程序
7二进制数111011111转换成十进制数是()(本题分值:1分)
B
A119375
B11975
C119125
D1193
8十六进制数FF1转换成十进制数是()(本题分值:1分)
A
A2550625
B255125
C1270625
D127125
9中国国家计算机网络设施是()(本题分值:1分)
A
ANCFC
BCERNET
CISDN
DInternet
10控制键^C的功能为()(本题分值:1分)
A
A终止当前 *** 作
B系统复位
C暂停标准输出设备的输出
D结束命令行
11COMMANDCOM为命令处理程序,DOS系统启动后,它()(本题分值:1分)
B
A驻留在外存,需要时装入内存
B常驻内存,包含所有内部命令
C不能处理外部命令
D不能处理后缀为EXE的可执行文件
12为了将所有扩展名为PAS的文件改成扩展名为P,应使用命令()(本题分值:1分)
C
AREN PAS AS
BREN PAS P
CREN PAS P
DREN PAS P
13设当前盘中文件XYC的路径为\A\B\XU,当前目录为\A\B。为了查看文件XYC的内容,应使用命令()(本题分值:1分)
A
ATYPE XU\XYC
BTYPE \XU\XYC
CDIR XU\XYC
DDIR \A\B\XU\XYC
14要将提示符改成当前盘当前目录后加一个大于号“>”,应使用命令()(本题分值:1分)
B
APROMPT
BPROMPT $ p $ g
CPROMPT $ $
DPROMPT C\>
15在多媒体计算机系统中,CD-ROM属于()(本题分值:1分)
D
A感觉媒体
B表示媒体
C表现媒体
D存储媒体
16设当前盘为C盘,将A盘根目录下的文件目录信息存放到当前盘当前目录下的文件AB中,应使用命令()(本题分值:1分)
C
ATYPE A:\>AB
BDIR >AB
CDIR A:\>AB
DDIR \>AB
17在位运算中, *** 作数每右移一位,其结果相当于()(本题分值:1分)
B
A *** 作数乘以2
B *** 作数除以2
C *** 作数除以16
D *** 作数乘以16
18在当前盘当前目录下有一个文件ABAT,其内容为
CD \
MD \XYZ\AB\B\C
CD XYZ\AB\B
在正确执行上述文件后,接着执行下列命令时,不会发生错误的是()(本题分值:1分)
C
AMD C
BRD \XYZ
CRD C
DRD B
19下列命令组中两个DOS命令互相等价的是()(本题分值:1分)
D
ATYPE ABTXT与DIR ABTXT
BDISKCOMP A:B:与COMP A: B:
CTYPE ABTXT>>XYTXT与COPY ABTXT XYTXT
DTYPE ABTXT>XYTXT与COPY ABTXT XYTXT
20设A盘为启动盘,其目录结构为
根目录
DOS子目录 COMANDCOM
USER子目录 AUTOEXECBAT
其文件AUTOEXECBAT的内容如下:
MD \XYZ
CD \DOS\USER
则由A盘启动成功后,A盘的当前目录是()(本题分值:2分)
C
A\DOS\USER
B\XYZ
C根目录
D\DOS
21C语言提供的合法关键字是()(本题分值:1分)
C
Aswitch
Bcher
Ccase
Ddefault
22在C语言中,合法的字符常量是()(本题分值:1分)
B
A′\084′
B′\x43′
C′ab′
D′\0′
23若已定义x和y为double类型,则表达式: x=1,y=x+3/2的值是()(本题分值:1分)
C
A1
B2
C20
D25
24合法的数组定义是()(本题分值:1分)
D
Aint a[]=〃string〃;
Bint a[5]=;
Cchar a=〃string〃;
Dchar a[]=;
25设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是()(本题分值:1分)
A
A10<a<15
Ba==11||a==12||a==13||a==14
Ca>10&&a<15
D!(a<=10)&&!(a>=15)
26若t为double类型,表达式t=1,t+5,t++的值是()(本题分值:1分)
C
A1
B60
C20
D10
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
A10,10
B10,20
C20,10
D20,20
29若有以下定义和语句:
int u=010,v=0x10,w=10;
printf(〃%d,%d,%d\n〃,u,v,w);
则输出结果是()(本题分值:1分)
A
A8,16,10
B10,10,10
C8,8,10
D8,10,10
30若有以下定义和语句:
char c1=′b′,c2=′e′;
printf(〃%d,%c\n〃,c2-c1,c2-′a′+′A′);
则输出结果是()(本题分值:1分)
B
A2,M
B3,E
C2,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
A20
B24
C25
D30
33若有以下定义和语句:
char s1=〃12345〃,s2=〃1234〃;
printf(〃%d\n〃,strlen(strcpy(s1,s2)));
则输出结果是()(本题分值:1分)
A
A4
B5
C9
D10
34若有以下定义和语句:
int a[10]=,p=a;
则不能表示a数组元素的表达式是()(本题分值:1分)
B
Ap
Ba[10]
Ca
Da[p-a]
35下面程序的输出结果是()(本题分值:2分)
C
Ak=3 a=2 b=3
Bk=3 a=3 b=2
Ck=2 a=3 b=2
Dk=2 a=2 b=3
36下面程序的输出结果是()(本题分值:1分)
main()
{unsigned a=32768;
printf(〃a=%d\n〃,a);}
C
Aa=32768
Ba=32767
Ca=-32768
Da=-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
AM==0
BM==1
CM!=0
DM!=1
39下述程序段的输出结果是()(本题分值:1分)
int x=10;
int7nbspy=x++;
printf(〃%d,%d〃,(x++,y),y++);
A
A11,10
B11,11
C10,10
D10,11
40若有以下的定义:
int a[]=,p=a
则值为3的表达式是()(本题分值:1分)
A
Ap+=2,(p++)
Bp+=2,++p
Cp+=3,p++
Dp+=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
A34
B4
C35
D3
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]
Cpw[0][0]
D(pw[1]+2)
44若有以下程序片段: char str[ ]=〃ab\n\012\\\\〃; printf(〃%d〃,strlen(str));
上面程序片段的输出结果是()(本题分值:2分)
C
A3
B4
C6
D12
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中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
BC函数既可以嵌套定义又可以递归调用
C函数必须有返回值,否则不能使用函数
DC程序中有调用关系的所有函数必须放在同一个源程序文件中
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
A20
B16
C14
D12
49设有定义:struct sk
data,p;
若有p=&data;,则对data中的a域的正确引用是()(本题分值:2分)
B
A(p)dataa
B(p)a
Cp->dataa
Dpdataa
50以下对枚举类型名的定义中正确的是()(本题分值:2分)
B
Aenum a=;
Benum a;
Cenum a=;
Denum a;
二、填空题(每空2分,共40分)请将答案分别写在答题卡中序号至的横线上,答在试卷上不得分。
1、与十进制数101等值的二进制数为。(本题分值:2分)
1100101
2、DOS命令分为内部命令与外部命令,XCOPY命令属于命令。(本题分值:2分)
外部
3、设当前盘为A盘,当前系统提示符为“>”,在不改变当前盘的情况下,显示C盘的当前目录路径,应使用命令。 (本题分值:2分)
CD C:
4、自动批处理文件名必须是。(本题分值:2分)
AUTOEXECBAT
5、设在当前盘当前目录下有两个文件WTXT与PTXT,现要将文件PTXT连接到文件WTXT的后面,若使用COPY命令,则完整的命令为。(本题分值:2分)
COPY WTXT+PTXT WTXT
6、表示条件10<x<100或x<0的C语言表达式是。(本题分值:2分)
(x>10&& x<100)||x<0
或(10<x&&x<100)||x<0
或x<0 ||(x>10&&x<100)
或0>x ||(10<x&&x<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()
;
;
}
(本题分值:6分)
p=j
x[i][p]
LineMax(x)
8、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。
main()
{float x[1000],sum=00,ave,a;
int n=0,i;
printf(〃Enter mark:\n〃);scanf(〃%f〃,&a);
while(a>= 00 && n<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分)
a
a
sum/n或sum/(float)n或sum/(double)n
x[i]<ave或!(x[i]>=ave)或ave>x[i]
9、执行以下程序,输入-10的结果是,输入5的结果是,输入10的结果是,输入30的结果是。
(本题分值:8分)
0
5
10
5
10、以下程序的功能是。
main()
;
int sum=0,i;
for(i=0;i<10;i++)
if(num[i]>0)
sum=num[i]+sum;
printf(〃sum=%6d〃,sum);
}
(本题分值:2分)
计算数组num中大于零的数据之和
11、以下程序可以把从键盘上输入十进制数(long型)以二到十六进制数的形式输出,请填空。
#include
main()
{char
b[16]=;
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分)
n%base
[d]
以上就是关于急需c语言程序设计教程第四版实验指导与习题解答课后习题答案,谢谢!!全部的内容,包括:急需c语言程序设计教程第四版实验指导与习题解答课后习题答案,谢谢!!、c语言程序设计苏小红第四版和谭浩强有什么区别、求<c语言程序设计>的答案等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)