
这个是算法问题; 举个例子6,
1x6=6, 2x3=6, 3x2=6, 4x=6, 5x=6, 6x1=6
乘数从1一直增到6, 同时被乘数会从6一直减到1,那么2x3和3x2就只是乘数与被乘数换位置了,这种情况下就不需要重复计算了临界值就是6的平方根了
所以,应该是
S6: 如果i<=n的平方根,返回S3;否则算法结束
(第一题)#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;
}
(1)十进制数1385转换成十六进制数为
A)568 B)569 C)D85 D)D55
(2)下列叙述中正确的是
A)计算机病毒只能传染给可执行文件
B)计算机软件是指存储在软盘中的程序
C)计算机每次启动的过程之所以相同,是因为RAM中的所有信息在关机后不会丢失
D)硬盘虽然装在主机箱内,但它属于外存
(3)一个字长的二进制位数是
A)8 B)16
C)32 D)随计算机系统而不同的
(4)CPU主要由运算器与控制器组成,下列说法中正确的是
A)运算器主要负责分析指令,并根据指令要求作相应的运算
B)控制器主要完成对数据的运算,包括算术运算和逻辑运算
C)控制器主要负责分析指令,并根据指令要求作相应的运算
D)控制器直接控制计算机系统的输入与输出 *** 作
(5)下列叙述中正确的是
A)将数字信号变换成便于在模拟通信线路中传输的信号称为调制
B)以原封不动的形式将来自终端的信息送入通信线路称为调制解调
C)在计算机网络中,一种传输介质不能传送多路信号
D)在计算机局域网中,只能共享软件资源,而不能共享硬件资源
(6)各种网络传输介质
A)具有相同的传输速率和相同的传输距离
B)具有不同的传输速率和不同的传输距离
C)具有相同的传输速率和不同的传输距离
D)具有不同的传输速率和相同的传输距离
(7)多媒体计算机系统的两大组成部分是
A)多媒体功能卡和多媒体主机
B)多媒体通信软件和多媒体开发工具
C)多媒体输入设备和多媒体输出设备
D)多媒体计算机硬件系统和多媒体计算机软件系统
(8)按通信距离划分,计算机网络可以分为局域网和广域网。下列网络中属于局域网的是
A)Internet B)CERNET C)Novell D)CHINANET
(9)在Windows中,启动应用程序的正确方法是
A)用鼠标双击该应用程序图标B)将该应用程序窗口最小化成图标
C)将该应用程序窗口还原D)将鼠标指向该应用程序图标
(10)在Windows中,终止应用程序执行的正确方法是
A)用鼠标双击应用程序窗口左上角的控制菜单框
B)将应用程序窗口最小化成图标
C)用鼠标双击应用程序窗口右上角的还原按钮
D)用鼠标双击应用程序窗口中的标题栏
(11)DOS控制键CtrlAltDel的功能为
A)删除一个字符并退格B)暂停标准输出设备的输出
C)热启动D)终止当前 *** 作
(12)设当前盘为C盘,为了将A盘当前目录中所有扩展名为。PAS 的文件改成扩展名为。P,应使用的DOS命令为
A)REN A:。PAS A:。P B)REN A:。PAS 。P
B)REN A:。PAS A:。P D)REN A:。PAS 。P
(13)设当前盘为C盘,其根目录下有两个子目录D1与D2,且当前目录为D1,若要进入子目录D2,正确的DOS命令为
A)CD D2 B)CD D2、C)CD 、D2 D)CD D1、D2
(14)设当前盘为A盘,要将B盘当前目录下的两个文件ATXT与XTXT 连接后以文件名YTXT存放到A盘的当前目录中,正确的DOS命令为
A)COPY ATXTXTXT A:YTXT B)COPY B:ATXTXTXT A:YTXT
B)COPY B:ATXTB:XTXT》YTXT D)COPY B:ATXTB:XTXT YTXT
(15)下列DOS命令中正确的是
A)REN 、USER、ATXT 、BTXT B)CD 、
C)TYPE 。TXT D)MD 、
(16)以下选项中属于C语言的数据类型是
A)复数型B)逻辑型C)双精度型D)集合型
(17)在C语言中,不正确的int类型的常数是
A)32768 B)0 C)037 D)0xAF
(18)语句:printf(“%d”,(a=2)&&(b=——2);的输出结果是
A)无输出B)结果不确定C)——1 D)1
(19)下列描述中不正确的是
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
(20)设有如下定义:int x=l,y=——1;,则语句:printf(“%d、n”,(x——&y));的输出结果是
A)1 B)0 C)——1 D)2
(21)当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是
A)c=b=a;B)(a=c)‖(b=c);
C)(a=c)&&(b=c);C)a=c=b;
(22)以下程序的输出结果是
A)10 1 9 2 B)9 8 7 6 C)10 9 9 0 D)10 10 9 1
main()
{int x=10,y=10,I;
for(i=0;x》8;y=i)
printf(“%d,%d ”,x——,y);
}
(23)以下程序的输出结果是
A)5 2 B)5 1 C)5 3 D)9 7
main()
,p=&x[1][1];
for(i=0;i《4;i=2)printf(“%d ”,p[i]);
}
(24)以下程序的输出结果是
A)6 B)6789 C)'6'D)789
main()
,p;
int i;
i=8;
p=aI;
printf(“%s、n”,p——3);
}
(25)以下程序的运行结果是
A)运行后报错B)6 6 C)6 12 D)5 5
#include “stdioh”
main()
{
int a[]=;
int p=a5,q=NULL;
q=(p5);
printf(“%d %d 、n”,p,q);
}
(26)以下说法中正确的是
A)#define和printf都是C语句B)#define是C语句,而printf不是
C)printf是C语句,但#define不是D)#define和printf都不是C语句
(27)语句:printf(“%d 、n”,12 &012);的输出结果是
A)12 B)8 C)6 D)012
(28)能正确表示a和b同时为正或同时为负的逻辑表达式是
A)(a》=0‖b》=0)&&(a《0‖b《0)
B)(a》=0&&b》=0)&&(a《0&&b《0)
C)(ab》0)&&(ab《=0)
D)ab》0
(29)以下程序的输出结果是
A)2 0 B)3 1 C)3 2 1 D)2 1 0
main()
{int n=4;
while(n——)printf(“%d ”,——n);
}
(30)若已定义:int a[9],p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是
A)p1 B)a1 C)aD)p
(31)以下程序的输出结果是
A)17,021,0x11 B)17,17,17
B)17,0x11,021 D)17,21,11
main()
{int k=17;
printf(“%d,%o,%x 、n”,k,k,k);
}
(32)以下程序的输出结果是
A)——1 1 B)0 1 C)1 0 D)0 0
main()
{int a=——1,b=1,k;
if((a《0)&&!(b——《=0))
printf(“%d %d、n”,a,b);
else
printf(“%d %d、n”,b,a);
}
(33)若有说明:long p,a;则不能通过scanf语句正确给输入项读入数据的程序段是
A)p=&a;scanf(“%ld”,p);
B)p=(long )malloc(8);scanf(“%ld”,p);
C)scanf(“%ld”,p=&a);
D)scanf(“%ld”,&a);
(34)以下选项中,能定义s为合法的结构体变量的是
A)typedef struct abc B)struct
{double a;{double a;
char b[10];char b[10];
}s;}s;
C)struct ABC D)typedef ABC
{double a;{double a;
char b[10];char b[10];
}}
ABC s;ABC s;
(35)若有以下的说明和语句,则在执行for语句后,((ptl)2)表示的数组元素是
A)t[2][0]B)t[2][2]C)t[l][2]D)t[2][l]
int t[3][3],pt([3],k;
for (k=0;k《3;k)pt[k]=&t[k][0];
(36)下面程序把数组元素中的最大值放入a[0]中。则在if 语句中的条件表达式应该是
A)p》a B)p》a[0]C)p》a[0]D)p[0]》a[0]
main()
,p=a,I;
for(i=o;i《10;i,p)
if(________)a=p;
printf(“%d”,a);
}
(37)以下程序的输出结果是
A)ihgfedcba B)abcdefghi C)abcdedeba D)ihgfefghi
#include
main()
{char a=“abcdefghi”;int k;
fun(a);puts(a);
}
fun(char s)
{int x,y;char c;
for(x=0,y=strlen(s)——1;x0)fun(k——1);
printf(“%d”,k);
}
(42)以下程序的输出结果是
A)6 9 9 B)6 6 9 C)6 15 15 D)6 6 15
int d=1;
fun(int p)
{static int d=5;
d=p;
printf(“%d ”,d);
return(d);
}
main()
(43)以下程序的输出结果是
A)123456780 B)123 456 780 C)12345678 D)147
main()
,p[3];int i;
for(i=0;i《3;i)p[i]=ch[i];
for(i=0;i《3;i)printf(“%s”,p[i]);
}
(44)以下程序的输出结果是
A)1 B)4 C)7 D)5
#include
int a[3][3]=,p;
main()
{p=(int)malloc(sizeof(int));
f(p,a);
printf(“%d 、n”,p);
}
f(int s,int p[][3])
(45)以下程序的输出结果是
A)9 B)6 C)36 D)18
#define f(x)xx
main()
{int a=6,b=2,c;
c=f(a)/f(b);
printf(“%d 、n”,c);
}
(46)以下程序的输出结果是
A)4 2 1 1 B)0 0 0 8 C)4 6 7 8 D)8 8 8 8
main()
,k,i;
for(k=0;s[k];k)
{switch(s[k])
{case '1':i=0;
case '2':i=1;
case '3':i=2;
case '4':i=3;
}
v[i];
}
for(k=0;k《4;k)printf(“%d ”,v[k]);
}
(47)以下程序的输出结果是
A)AfghdEFG B)Abfhd C)Afghd D)Afgd
#include
main()
{char p1,p2,str[50]=“ABCDEFG”;
p1=“abcd”;p2=“efgh”;
strcpy(str1,p21);strcpy(str3,p13);
printf(“%s”,str);
}
(48)以下程序的输出结果是
A)###B)#####C)D)##
main()
{int i;
for(i=1;i《6;i)
printf(“”);
}
printf(“、n”);
}
(49)若有以下定义和语句:
double r=99,p=&r;
p=r;
则以下正确的叙述是
A)以下两处的p含义相同,都说明给指针变量p赋值
B)在“double r=99,p=&r;”中,把r的地址赋值给了p所指的存储单元
C)语句“p=r;”把变量r的值赋给指针变量p
D)语句“p=r;”取变量r的值放回r中
(50)以下程序的输出结果是
A)编译不通过,无输出B)aceg
C)acegi D)abcdefghi
main()
{int i;
for(i='A';i《'I';i,i)printf(“%c”,i32);
printf(“、n”);
}
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡____1_____至___20_____序号的横线上,答在试卷上不得分。
(1)DOS命令分为内部命令与外部命令,PATH命令是____1____命令。
(2)设当前盘为A盘,当前目录为、X、Y,A盘上的一个文件QRC 在当前目录下的子目录W中。现已将A盘的当前目录改为、D、XY,当前盘改为C盘,如果需指定A盘上的该文件应写成____2____。
(3)为了得到XCOPY命令的在线帮助,可使用的DOS命令文件一为____3____。
(4)在DOS系统下,代表键盘与显示器的设备文件名为____4____。
(5)在DOS系统下,可以直接执行的文件的扩展名除。FXE外,还有两个是____5____。
(6)若想通过以下输入语句使a=50,b=4,c=3,则输入数据的形式应该是____6____。
。
。
。
int b,c;float a;
scanf(“%f,%d,c=%d”,&a,&b,&c);
。
。
。
(7)下列程序的输出结果是_____7____。
#include
main()
{char b[30],chp;
strcpy(&b[0],“CH”);
strcpy(&b[1],“DEF”);
strcpy(&b[2],“ABC”);
printf(“%s 、n”,b);
}
(8)下列程序的输出结果是____8____。
int t(int x,int y,int cp,int dp)
{cp=xxyy;
dp=xx——yy;
}
main()
{int a=4,b=3,c=5,d=6;
t(a,b,c,d);
printf(“%d %d 、n”,c,d);
}
(9)下列程序中字符串中各单词之间有一个空格,则程序的输出结果是____9____。
#include
main()
{char strl[]=“How do you do”,p1=strl;
strcpy(strlstrlen(strl)/2,“es she”);
printf(“%s 、n”,pl);
}
(10)以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。
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____10____;x[n]=_____11____;
n;scanf(“%f”,&a);
}
ave=____12____;
printf(“Output:、n”);
printf(“ave=%f、n”,ave);
for(i=0;i
main()
{FILE fp;
char ch,fname[32];int count=0;
printf(“Input the filename :”);scanf(“%s”,fname);
if((fp=fopen(____16____,“w”))==NULL)
printf(“Enter data:、n”);
while((ch=getchar())!=“#”)
fprintf(____17____,“、n%d、n”,count);
fclose(fp);
}
(13)以下函数creatlist用来建立一个带头节点的单链表,链表的结构如下图所示,新的结点总是插入在链表的末尾。链表的头指针作为函数值返回,链表最后一个节点的next域放入NULL,作为链表结束标志。data为字符型数据域,next为指针域。读入时字符以#表示输入结束(#不存入链表)。请填空。
struct node
{char data;
struct node next;
};
。
。
。
_____18_____ creatlist()
{struct node h,s,r;char ch;
h=(struct node )malloc(sizeof(struct node));
r=h;
ch=getchar();
{s=(struct node )malloc(sizeof(struct node));
s——》data=____19____;
r——》next=s;r=s;
ch=getchar();}
r——》next=____20_____;
return h;
}
希望对你有帮助!
另外,团IDC网上有许多产品团购,便宜有口碑
以上就是关于C程序设计(第四版)谭浩强著中的例题2.5。有点儿不懂,帮忙给点意见谢谢全部的内容,包括:C程序设计(第四版)谭浩强著中的例题2.5。有点儿不懂,帮忙给点意见谢谢、求<c语言程序设计>的答案、c程序设计第四版谭浩强程序案例里案例2 学生试卷统计的TXT发过来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)