
正文
高级c++编程题,c++高级编程pdf第四版
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言程序设计编程题目:请 :编写完成对学生相关信息的要求:1.定义一个结构体类型student,其中包括三个成
#include stdio.h
#include stdlib.h
#define STU_NUM 10 /*宏定义学生的数量*/
struct student /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/
{
char stu_id[20]; /*学生学号;*/
float score[3]; /*三门课成绩;*/
float total; /*总成绩;*/
float aver; /*平均成绩;*/
};
/*排序用一个函数来实现*/
void SortScore(student *stu,int n)
{
student stud;
for(int i = 0; i n-1; i++)
for(int j = i+1 ; j n; j++)
{
if(stu[i].total stu[j].total)
{
stud = stu[i];
stu[i] = stu[j];
stu[j] = stud;
}
}
}
int main( )
{
student stu[STU_NUM]; /*创建结构体数组中有10个元素,分别用来保存这10个人的相关信息。*/
/*输入这十个学生的相关信息*/
for(int i = 0; iSTU_NUM; i++)
{
printf("请输入第%d个学生的学号:",i+1);
scanf("%s",stu[i].stu_id);
printf("输入第%d个学生的数学成绩:",i+1);
scanf("%f",stu[i].score[0]);
printf("输入第%d个学生的英语成绩:",i+1);
scanf("%f",stu[i].score[1]);
printf("输入第%d个学生的计算机成绩:",i+1);
scanf("%f",stu[i].score[2]);
stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
stu[i].aver = stu[i].total/3;
}
printf("\n");
SortScore(stu,STU_NUM);/*调用排序函数*/
/*输出排序后的各学生的成绩*/
for(i = 0 ; i STU_NUM; i++)
{
printf("序号: %d\t",i);
printf("学号:%s\t",stu[i].stu_id);
printf("数学:%f\t",stu[i].score[0]);
printf("英语:%f\t",stu[i].score[1]);
printf("计算机:%f\t",stu[i].score[2]);
printf("平均成绩:%f\t",stu[i].aver);
printf("总分:%f\t",stu[i].total);
printf("\n\n");
}
return 0;
}
注:(源程序中主要标识符含义说明)
#define STU_NUM 10 /*宏定义学生的数量*/
struct student /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/
{
char stu_id[20]; /*学生学号;*/
float score[3]; /*三门课成绩;*/
float total; /*总成绩;*/
float aver; /*平均成绩;*/
}
相关问答
Q1: 一道c语言编程题,求教
思路分析:首先建立一个缓冲数组,由于题目要求输入的数据个数不超过两位,所以,数据的位数设为100即可,即BUF[100]; 当检测到输入,(+,-,*,/)的时候,停止输入,并将前面的树,用求最大最小的算法(查找法)找出其最大值和最小值(这个算法也可以在输入的时候同时操作!),当输入“=”的时候,调用根据前面的输入的符合并进行相应的运算,打印出结果即可。
高级:上述程序完成,可以考虑,在数据数据加入些判断,如果输入错误可以输出些异常。
good luck.
Q2: C语言题目:要求用户输入10个学生的考试成绩,并编写一个求平均值的函数,求这10个学生的平均成绩。
#includestdio.h
float av(int n)
{int i,x,s=0;
for(i=0;in;i++)
{scanf("%d",x);
s+=x;
}
return (float)s/n;
}
int main()
{int n;
float cj;
printf("请输入10个学生的成绩:\n");
cj=av(10);
printf("平均分=%.1f\n",cj);
return 0;
}
Q3: 求C语言练习题答案
二、填空题
1. ___变量__是指在程序运行过程中,值可以发生变化的量。
2.C语言是一种____区分_(区分/不区分)字母大小写的语言,Password和password在C语言中是两个___不同__(相同/不同)的标识符。
3.下面的转义字符分别表示:
’\b’__退格___,’\n’__换行___,’\t’__水平制表___,’\地’ __双引号字符逗"地___
4.下面常量的类型分别为:
1.5E12__浮点型___,1288L _整型____,’a’__字符___,"a"__字符串___
08 __整形___,’\007’__整型___
5. C语言源程序一定要有而且只有一个__主函数___函数,程序执行时也从它开始。
6. 结构化程序设计主要有___顺序__、__选择___和__循环___三种基本结构。
三、判断题
1. C语言不是一种结构化程序设计语言。(错)
2. C语言是弱类型语言,为了类型转换的方便,对类型的要求很不严格,在许多情况下不做类型检查。( 对 )
3. C语言既具有高级语言的特点,同时也具有部分低级语言的特点。(对)
4. C源程序可以由多个文件组成,每个文件中都可有一个主函数main()。( 错 )
5. C程序从main()函数开始执行,因此主函数main()必须放在程序的开头。(错)
6. 命名标识符时字符个数不得超过6个。(错)
7. 对于同一个数据种类型,变量值越大,它所占内存的字节数越多。(错)
8. 定义一个变量时必须指出变量类型,但是不一定必须给变量初始化。( 对 )
9. ""表示一个空字符串常量,’’表示一个空字符常量。( 对 )
10. 一个表达式中出现多种数值型数据类型,运算前先进行类型转换。( 对 )
11. 浮点数不能作自增或自减运算,只有整型才可作自增或自减运算。( 错 )
12. 已知a、b是整型变量,则表达式a=3,2+4,b=6,7+8是一个逗号表达式。( 对 )
四、问答题
1. 写出下面表达式的值
(1)12/3*9=36
(2)int i=3,j;
i*=2+5;
i/=j=4;
i+=(j%2);
i、j的最终结果是多少看i=5,j=4
(3)int a=3,b,c;
b=(a++)+(a++)+(a++);
c=(++a)+(++a)+(++a);a、b、c的最终结果是多少看a=9,b=9,c=25
2. 下列表达式是否正确?若正确,表达式的值是什么?
21/2=10 21/2.0= 10.5 21.0/2=10.5 21%2=1 21.0%2 21%2.0 18%15=3 15%18=15 3%15=3
五、编程题
编写程序,在屏幕上输出如下信息:
===================
= I am a student. =
===================
#include"stdio.h逗
void main()
{
printf("= I am a student. =");
}
Q4: C语言编程题,求1+2!+3!+...+20!的和,怎么做?
以下是用C语言编程求出1!+2!+3!+……+20!的值示例代码:
#include stdio.h
int main()
{
int i,j;
long sum,k;
sum=0;
for(i=1;i=20;i++)
{k=1;
for(j=1;j=i;j++)
{
k=k*j;
}
sum=sum+k;
}
printf("1+2!+3!+…+20!=%d",sum);
}
扩展资料:
C语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境,在用C语言实现相同功能时的代码基本一致,不需或仅需进行少量改动便可完成移植。
这就意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行,从而极大的减少了程序移植的工作强度。
C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,又是一个实用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言。
参考资料来源:百度百科-C语言
Q5: C语言题急求!~!~!~!~!~!~!~!~!~!
1.
最初的C语言是为描述和实现
UNIX
操作系统而设计的。
2.
C语言规定,标识符必须以字母或
下划线
开头。
3.
C语言的double型数据在内存中占用
8
个字节的存储单元。
4.
×C语言的变量有
2
种存储类型,其中
static
型变量不进行初始化时,初值自动为0
5.写出下列表达式的求值结果:
(1)
2+3=2
(2)
5/3+2
3
(3)
!
(32)||8!=7
1
(4)
3+7%3
4
6.已知int=12;
执行语句a*=2+4后,变量a的值为
24
。
7.已知int=2,b;
执行语句b=
a--;
后,变量a的值为
1
,
b的值为
2
。
8.若有int
a=2,b=1,c=0;
执行语句c=a++
-
b
-
-;
后,变量c的值为
1
,b的值为
一、
判断题(1×5分,正确的画√,错误的画×)
(×)1.
C语言俗称“低级语言的高级形式”,这说明C语言的功能不强。
(√)2.
C语言允许用实型表达式向整型变量赋值。
×(×)3.
C语言的全局变量只能是extern存储类型。
×(×)4.
已知int
a[4],*p;则语句p=a;是正确的。
(×)5.
下面的程序段构成死循环。
a=5;
while
(1)
{a--;
if
(a0)
break
;
}
三、单项选择题:(2×10分)
1.
在IBM-PC机中,unsigned
int类型表示的数据范围是(
D
)。
A)0-127
B)0-255
C)0-32767
D)0-65535
2.
下列符号中,合法的C常量是(
C
)。
A)
1e8.2
B)
0XFFH
C)
‘\n’
D)
089
3.语句x=3;
do{printf(“%d”,x);x--}while(x=
=0);
的执行结果是(
C
)。
A)3210
B)
321
C)3
D)无任何显示
4.
已知p、q
是两个同类型的指针变量,下列表达式有语法错误的是(
B
)。
(A)p!=NULLp=
=q
(B)
p*q
(C)p++,q--
(D)p-q+1
5.若k=
-1,
表达式k=
k=0
?
(k-2)
:
(
k+2)
的值为(
D
)。
(A)-3
(B)
-2
(C)1
(D)2
×6.下面关于C函数的说法中正确的是(
B
)。
A)C函数的返回值类型必须是整型、实型或指针三者之一
B)C函数的返回值必须用return语句带回主函数
C)C函数允许递归调用,也允许在函数体中定义子函数
D)任何C函数必须使用return语句带回主程序
×7.若定义typedef
struct
user
{int
num;
char
name[21];
long
code;}
UserTp,;
则表达式
sizeof(UserTp)的值为(
D
)。
A)
B)
21
C)
31
D)
27
×8.已知static
int
a[
]={1,2,3,4};
int
*p;
若有p=a+2;
则*p++的值为(
C
)。
A)1
B)2
C)3
D)4
×9.定义C函数时,若缺省函数返回值类型,则返回值类型为(
A
)。
A)int
B)char
C)void
D)char
*
10.
×为只读操作打开正文(文本)文件,正确的打开方式是(
A
)。
A)
“r+”
B)
“a”
C)
“w”
D)
“rb”
四、多项选择题(2×5分,多选或错选不得分,少选得1分)
1.以下数据类型在内存中占用4个字节的是(
BC
)。
A)
int
B)
unsigned
long
C)
float
D)
unsigned
char
×2.
定义char
s[81];
后,能正确输入一个字符串到数组s的语句是(
ABC
)。
A)gets(s);
B)scanf
(”%c”,s);
C)scanf
(”%s”,s[0]);
D)gets(s[0]);
3.
以下关于C源程序文件的说法中正确的是(
BCD
)
A)是一种二进制文件
B)是一种文本(ASCII码)文件
C)可以用DOS的type命令显示其内容
D)文件扩展名一般为c
×4.
下面关于C语言的说法错误的是(
ACD
)。
A)
C函数必须有形式参数
B)
任何复合语句体的{
}中允许定义局部变量
C)
局部变量都存储在动态存贮区
D)
C程序的执行起点只能是main函数
5.
以下程序正确计算p=n!
(n=0)的是(
AB
)。
A)
for(p=1.0,k=1;k=n;)
p*=k++;
B)
p=1.0;k=0;while(kn)
p*=++k;
C)
p=1.0;k=1;do{++k;p*=k;}
while(k=n);
D)
p=1.0;for(k=n;k=1;k--)
p*=k--;
五、读程序与程序填空(共22分)
1.阅读以下程序,写出程序运行结果:(共3Χ4分)
×
(1)
#include
”stdio.h”
void
main()
{char
a[61],*s;int
n;
gets(a);
for(s=a;*s;s++)
if(*s=’a’*s=’z’)
*s-32;
puts(a);
}
若程序的输入为abcb,则输出结果为
ABCD
。
(2)
#include
”stdio.h”
void
main()
{
int
s=0,k=0;
while(k4)
{s+=k;k++;printf(“%d”,s);}
}
该程序的输出是
0136
。
(3)
#include
“stdio.h”
void
main(
)
{static
int
a[5]={2,-15,1,0,-7};
int
i;
for(i=0;i5;i++)
if(a[i]0)
a[i]
=
-a[i];
for(i=4;i=0;i--)
printf(“%4d”,
a[i]);
}
该程序的输出是7
1
15
12
(4)
×#include
“stdio.h”
#define
N
5
int
swap(int
*p,
int
*q)
{int
t;
if(pq)
{t=*p;*p=*q;*q=t;}
return
pq;
}
void
f(int
a[
],int
m)
{int
*p,
*q;
p=a;q=a+m;
while(swap(p,q))
{p++;
q--}
}
void
main(
)
{int
m,a[N];
for(m=0;mN;m++)
scanf(“%d”,a+m);
f(a,N-1);
for(m=0;mN;m++)
printf(“%d”,a[m]);
}
若程序的输入为1
2
3
4
5,
则输出结果为
5
4
3
2
1
2.程序填空:(共10分)
(1)
×以下程序的功能是输入年、月、日,求该日期是这一年的第几天,填空使之完善。
#include
“stdio.h”
int
IsLeap(int
y)
/*
此函数的功能是判断年号y是否为闰年
*/
/*
已知闰年的条件是年号y能被4整除,但不能被100整除,或年号y能被400整除
*/
{int
r;
if(
y%4=
=0y%100!=0||y%400=
=0
)
r=1;
else
r=
;return
r;}
int
DaysofMonth(int
y,int
m)
/*
此函数的功能是求y年m月的天数
*/
{
int
days;
switch(m)
{case
4,6,9,11:days=30;break;
case
2:if(IsLeap(y))
days=28;else
days=29;break;
default:days=
31
;
}
return
days
;
}
void
main
(
)
{int
k,y,m,d,days;
printf(“Input
year,month,date:”);scanf(“%d%d%d”,y,m,d);
days=0;
for(k=
1
;
km
;k++)days+=
DaysofMonth(y,k);
days+=d;
printf(“days=%d\n”,days);}
(2)
下面程序的功能是输出100至1000以内的素数,请填空使之完善。
#include
“stdio.h”
#include
“
math.h
”
void
main
(
)
{
int
m,k,j;
for(m=100;m=1000;m++)
{k=sqrt(m);
for(j=2;
j=k
;j++)
if(m%j
=
=
0)
break;
if(
jk或
j=k+1
)
printf(“%5d”,m);
}
}
六、根据题意编写程序:(3Χ6+10=28分)
1.
编程序,从键盘输入a0,a1,a2,…,an计算s=ao+a1x+a2x2+…+anxn
×2.编程序,将正文(文本)文件中的小写字母变成大写并统计输出文件有多少个字符,
要求文件名由键盘输入。
×3.编程序,输入n个英文单词(n用#define定义为8),然后将这些单词按英文字典顺
序输出。
×4.编程序,从键盘输入n个学生的姓名、学号和住址,按照学号次序把它们串成一个单向链表。
1.
main(
)
{float
x,a[n+1],s=0.0;
int
i,n;printf(“请输入n和x的值”);scanf(“%d,%f”,n,x);printf(“请输入所有系数的值”);
for(i=0;i=n;i++)scanf(“%f”,a[i]);
for(i=0;i=n;i++)
s=s+a[i]*pow(x,i);printf(“s=%f”,s”);}
2.
#include
“stdio.h”
main
(
)
{int
i;char
ch,name[80];
FILE
*fp;
i=0;
printf(“please
input
the
filename:”);
scanf(“%s”,name);
if((fp=fopen(name,”r+”))==NULL)
{
printf(“cannot
open
the
file”);
exit(0);}
ch=fgetc(fp);
i++;
if((ch=’a’)(ch=’z’))
ch=ch-32;
fputc(ch,fp);
printf(“字符总数为%”,i);
fclose(fp);
}
3.
#include
"stdio.h"
#include
"string.h"
#define
n
8
void
main(
)
{char
*p,*s[n],t[21];
int
i,j;
for(i=0;in;i++)
{scanf("%s",t);
s[i]=(char
*)malloc(strlen(t)+1);
strcpy(s[i],t);
}
for(i=0;in-1;i++)
for(j=i+1;jn;j++)
if(strcmp(s[i],s[j])0)
{p=s[i];s[i]=s[j];s[j]=p;}
for(i=0;in;i++)
printf("%s\n",s[i]);
}
输入
basic
good
well
c
pascal
morning
hlr
cpp
输出:
basic
c
cpp
good
hlr
morning
pascal
well
高级c++编程题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c++高级编程pdf第四版、高级c++编程题的信息别忘了在本站进行查找喔。







