北航大一上c语言第四五六七八次作业
15秋北航《C语言程序设计》在线作业试卷最新
15秋北航《C语言程序设计》在线作业一、单选题(共10 道试题,共40 分。
)V 1. 定义int x,y;执行y=(x=1,++x, x+2)语句后,y的值是( ).A. 1B. 2C. 7D. 4满分:4 分2. 当调用函数时,实参是一个数组名,则向函数传送的是( )A. 数组的长度B. 数组的首地址C. 数组每一个元素的地址D. 数组每个元素中的值满分:4 分3. 表达式:10!=9的值是( )A. trueB. 非零值满分:4 分4. C语言中,长整型long数据在内存中的存储形式是( )。
A. ASCIIB. 原码C. 反码D. 补码满分:4 分5. 若有定义:int x; 要将x强制转换为双精度型,应该写成A. x(double)B. x(double)C. (double)xD. double(x)满分:4 分6. 设n=3;则执行++n语句后,n的值为_____。
()A. 5B. 4满分:4 分7. 下面程序的输出结果是__________. main() { int x=102,y=012; printf("%2d,%2d",x,y);}A. 10,01B. 02,12C. 102,10D. 02,10满分:4 分8. 以下叙述中错误的是A. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B. 数组名代表的是数组所占存储区的首地址,其值不可改变C. 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D. 可以通过赋初值的方式确定数组元素的个数满分:4 分9. 下列程序的运行结果是__________. void fun(int *a, int *b) { int *k; k=a; a=b;A. 编译出错B. 6 3C. 3 6D. 0 0满分:4 分10. 在C语言中,不正确的int类型的常数是( )A. 0B. 32768C. 037D. 0xaf满分:4 分二、判断题(共15 道试题,共60 分。
北航《C语言程序设计》答案
北航《C语言程序设计》在线作业一单选题判断题一、单选题(共15 道试题,共60 分。
)1. 以下叙述中正确的是A. 预处理命令行必须位于源文件的开头B. 在源文件的一行上可以有多条预处理命令C. 宏名必须用大写字母表示D. 宏替换不占用程序的运行时间正确答案:D2. 以下各选项企图说明一种新的类型名,其中正确的是A. typedef v1 int;B. typedef v2=int;C. typedef int v3;D. typedef v4: int;正确答案:C3. C语言对嵌套if语句的规定是:else总是与( )配对。
A. 其之前最近的ifB. 第一个ifC. 其之前最近且不带else的ifD. 缩进位置相同的if正确答案:C4. 已知:#define N 3; 执行语句i=N*3; 后,i=_______.A. 3B. 6C. 9D. 以上均不正确正确答案:C5. 以下选项中可作为C语言合法常量的是A. -8B. -080C. -8e1.0D. -80.0e正确答案:A6. 以下不正确的C语言标识符是_____。
A. ABCB. abcC. a_bcD. ab.c正确答案:D7. 数组int**a[3][4]占据多大空间B. 12C. 48D. 128正确答案:C8. 已知:int x,a,b;下列选项中错误的if语句是______。
()A. if(a=b) x++;B. if(a=<b) x++;C. if(a-b) x++;D. if(x) x++;正确答案:B9. 下列可以正确表示字符型常数的是______。
A. "a"B. …t…C. "n"D. 297正确答案:B10. 表达式:10!=9的值是( )A. trueB. 非零值C. 0D. 1正确答案:D11. 在C语言中,形参的缺省存储类型是( )A. autoB. registerC. staticD. extern正确答案:A12. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为_____。
北航在线作业C语言答案1
A、1024
B、512
C、256
D、128
答案:C
第4题 C语言中的注释语句用什么标示?
A、/* */
B、//
C、;
D、#
答转换成十六进制数是:
A、64
B、63
C、100
D、144
答案:A
第6题 常数的书写格式决定了常数的类型和值,0x1011是:
A、8进制整型常量
B、字符常量
C、16进制整型常数
D、2进制整型常数
答案:C
第7题 C语言中函数的返回语句是___。
单项选择题
第1题 C语言从哪个函数开始执行?
A、main
B、begin
C、start
D、go
答案:A
第2题 常用的C语言输出函数是___。
A、scanf
B、print
C、printf
D、input
答案:C
正确
错误
答案:正确
第18题 long能表示的最小数是-2^31。
正确
错误
答案:正确
第19题 实型数据在内存中是以指数形式存储的。
正确
错误
答案:正确
第20题 每一个C程序都必须有一个main函数。
正确
正确
错误
答案:正确
第12题 实数只有十进制小数形式和指数形式两种。
正确
错误
答案:正确
第13题 字符数据只占一个字节,只能存放0~255范围内的整数。
正确
错误
答案:正确
北京航空航天大学《C语言程序设计》试卷
北京航空航天大学《C语言程序设计》课程考试试卷注意事项: 1、本试卷满分100分;考试时间:90分钟;考试形式:开卷2、请将答案一律写在答题纸上,试卷上作答无效3、考试结束后,考生将试卷及答题纸一并交回4、请将条形码贴在答题纸的指定位置学习中心______________姓名____________学号____________一、单项选择题(本大题共10小题,每小题2分,共20分)1、设有定义语句“char s[]=”123”;”,则表达式“s[3]”的值是______。
()A.' 1' B.'3'C.'\0' D.存在语法错误2、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为______。
()A.自动(auto) B.静态(static)C.外部(extern) D.寄存器(register)3、已知:char w; int x; float y; double z;,则表达式w*x+z-y结果的类型是______。
()A.float B.charC.int D.double4、当声明一个结构变量时,系统分配给它的内存是______。
()A.各成员所需内存量的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量5、C语言中的简单数据类型包括______。
()A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型6、合法的数组说明语句是______。
()A.int a[]="string";B.int a[]={0,1,2,3,4,5};C.char a="string";D.char a[5]={'0','1','2','3','4','5,};7、定义int i=1;,执行语句while(i++<5);后,i的值为______。
大连理工c语言第五次上机作业参考答案
第五次上机作业:(请用指针实现)1.数据移位有n(n<=10)个整数,使前面各数顺序向后移m(m<=n)个位置,最后m 个数变成最前面的m个数,如图所示。
编写函数shift(a,n,m)实现上述功能,在主函数中输入n个整数和输出调整后的n个数。
SAMPLE OUTPUTnInput n(n<=10):10Input 10 integers:Output the original:Output the shifted:#include <>#define N 10void shift(int a[ ],int n,int m);void main( ){ int i,n,m;int a[N];printf("Input n(n<=10):");scanf("%d",&n);printf("Input %d integers:\n",n);for(i=0;i<n;i++)scanf("%d",a+i);printf("Output the original:\n");for(i=0;i<n;i++)printf("%d ",*(a+i));printf("\n");printf("Input m(m<=%d):",n);scanf("%d",&m);shift(a,n,m);printf("Output the shifted:\n");for(i=0;i<n;i++)printf("%d ",*(a+i));printf("\n");}void shift(int a[ ],int n,int m){ int i,j,t;for(i=0;i<m;i++){ t=a[n-1];for(j=n-2;j>=0;j--)a[j+1]=a[j];a[0]=t;}}2.字符串排序在主函数中输入10个不等长的字符串放入二维字符数组中,编写函数sort()利用指针数组对其排序,在主函数中输出排好序的字符串。
C语言大作业全
#include "stdafx.h"#include "stdio.h"#include "stdlib.h"#include "string.h"#include "malloc.h"#define LEN sizeof(struct student) #define NULL 0int n,m;int k=1;struct student{char num[20];char name[20];int age;char profession[50];int maths;int english;int C_program;float ave;struct student * next;};float ave(struct student * p1){float ave;ave=(float)(p1->maths+p1->english+p1->C_program)/3;return ave;}void save(struct student *head){struct student *p1 = head;FILE *outFile;outFile = fopen("stu.bin", "wb");if (outFile == NULL) {printf("\nFile error.");}else {while(p1 != NULL){fwrite(p1, sizeof(struct student), 1, outFile);p1 = p1->next;}fclose(outFile);}}//将数据存入文档中void check(struct student * head,struct student * p1) {struct student *h=head;for(m=0;m<n;m++,h=h->next ){if(strcmp( h->num,p1->num)==0){printf("输入号码重复\n");printf("请重新输入学号:");scanf("%s",p1->num);getchar();check(head,p1);}}}//检验学号是否重复struct student * creat(){struct student * head;struct student *p1,*p2;n=0;p1=p2=(struct student *)malloc(LEN); printf("学号:\n");scanf("%s",p1->num);getchar();printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);head=NULL;while(strcmp(p1->num,"0")!=0){n=n+1;if(n==1)head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(LEN);printf("学号:\n");scanf("%s",p1->num);getchar();check(head,p1);//检查输入的学号是不是重复且是不是重复输错 printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);}p2->next=NULL;save(head);return(head);}//录入数据并将其保存至文档void print(struct student *head){struct student * p;printf("\n这%d个学生的成绩为:\n",n);printf("学号姓名年龄专业数学英语 C语言平均成绩\n");p=head;if(head==NULL)printf("The info error\n");if(head!=NULL)while(p!=NULL){p->ave=ave(p);printf("%s%8s%8d%13s%9d%10d%9d%10.2f",p->num,p->name,p->age,p->profession,p->maths,p->engl ish,p->C_program,p->ave);printf("\n");p=p->next;}}//输出链表//struct student* read(){struct student *head = NULL;struct student *p2 = head;struct student record;FILE *infile;infile = fopen("stu.bin", "rb");n=1;if(infile == NULL){printf("\nFile error.");}else {head = (struct student *)malloc(sizeof(struct student));fread(head, sizeof(*head), 1, infile);p2 = head;while(fread(&record, sizeof(record), 1, infile))//fread返回数据个数,结束和出错返回0;{p2->next = (struct student *)malloc(sizeof(struct student));memcpy(p2->next, &record, sizeof(record)); //复制结构体数据p2 = p2->next;n=n+1;}p2->next=NULL;fclose(infile);}return head;}//从文件中读取数据struct student * search_num(struct student * head,char array[20]){struct student * p1;p1=head;if(head==NULL){printf("打开错误");return(head);}while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)){p1=p1->next;}//找到相应的学号if(strcmp(array,p1->num)==0){printf("学号姓名年龄专业数学英语 C语言\n");printf("%s%10s%10d%15s%11d%12d%11d",p1->num,p1->name,p1->age,p1->profession,p1->maths,p1-> english,p1->C_program);printf("\n");}else printf("此学号不存在\n");return(head);}//按学号查询数据//]struct student * search_name(struct student * head,char array[20]){struct student * p1;p1=head;if(head==NULL){printf("打开错误");return(head);}while((strcmp(array,p1->name)!=0)&&(p1->next!=NULL)){p1=p1->next;}//找到相应的学号if(strcmp(array,p1->name)==0){printf("学号姓名年龄专业数学英语 C语言\n");printf("%s%10s%10d%15s%11d%12d%11d",p1->num,p1->name,p1->age,p1->profession,p1->maths,p1-> english,p1->C_program);printf("\n");}else printf("此姓名不存在\n");return(head);}//按姓名查询数据//struct student * change(struct student * head,char array[20]){struct student *p1;p1=head;if(head==NULL){printf("打开错误!");return(head);}while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)) {p1=p1->next;} //找到相应的学号if(strcmp(array,p1->num)==0){printf("请输入更改的学号:\n");printf("学号:\n");scanf("%s",p1->num);getchar();printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);save(head);}else printf("所查学号不存在\n");return(head);}//修改数据//struct student * del(struct student * head,char array[20]) {struct student * p1,* p2;if(head==NULL){printf("\nlist null!\n");return head;}p1=head;while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)){p2=p1;p1=p1->next;}//找到相应的学号、if((strcmp(array,p1->num)==0)){if(strcmp(array,head->num)==0)head=p1->next;elsep2->next=p1->next;}elseprintf("你查询的学号(%s)不存在!",p1->num);save(head);return(head);}void add(struct student * head){struct student *p1;printf("\n请输入添加学生的信息:\n");p1=(struct student *)malloc(LEN);printf("学号:\n");scanf("%s",p1->num);getchar();check(head,p1);printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);FILE *outFile;outFile = fopen("stu.bin", "ab");if (outFile == NULL) {printf("\n打开错误.");}fwrite(p1, sizeof(struct student), 1, outFile);fclose(outFile);}void sta(struct student * head,char array[20],int max,int min) {struct student *p1=head;int k=0;if(strcmp(array,"maths")==0){while(p1!=NULL){if(p1->maths>=min&&p1->maths<=max)k++;p1=p1->next;}printf("数学科目在%d到%d之间的人数为:%d\n",min,max,k);}else if(strcmp(array,"english")==0){while(p1!=NULL){if(p1->english>=min&&p1->english<=max)k++;p1=p1->next;}printf("英语科目在%d到%d之间的人数为:%d\n",min,max,k); }else if(strcmp(array,"C_program")==0){while(p1!=NULL)if(p1->C_program>=min&&p1->C_program<=max)k++;p1=p1->next;}printf("C语言科目在%d到%d之间的人数为:%d\n",min,max,k); }}void exit(){printf("\t\t");printf("**********************\n");printf("\t\t");printf("*******感谢使用*******\n");printf("\t\t");printf("**********************\n");k=0;}void Chooseproject(int i){ struct student * head=NULL;if(i==1){head = read();print(head);else if(i==2){int p=1 ;printf("请选择按学号查询(1)还是按姓名查询(0):");scanf("%d",&p);while(p!=1&&p!=0){printf("输入错误!");printf("请选择学号查询(1)还是姓名查询(0)");scanf("%d",&p);}if(p==1){head = read();char num[20];printf("请输入查询的学号:\n");scanf("%s",num);head=search_num(head,num);while(strcmp(num,"0")!=0){printf("是否继续查询(是就输学号,否就输0):\n");scanf("%s",num);if(strcmp(num,"0")==0)break;head=search_num(head,num);}}else if(p==0){head = read();char name[20];printf("请输入查询的学号:\n");scanf("%s",name);head=search_name(head,name);while(strcmp(name,"0")!=0){printf("是否继续查询(是就输学号,否就输0):\n"); scanf("%s",name);if(strcmp(name,"0")==0)break;head=search_name(head,name);}}}else if(i==3){ head = read();char num[20];printf("请输入要更改的学号:\n");scanf("%s",num);getchar();head=change(head,num);print(head);while(strcmp(num,"0")!=0){printf("是否继续更改(是就输学号,否就输0):\n"); scanf("%s",num);getchar();if(strcmp(num,"0")==0)break;head=change(head,num);print(head);}}else if(i==4){head=read();add(head);}else if(i==5){char num[20];head=read();printf("请输入要删除的学号:\n");scanf("%s",num);getchar();head=del(head,num);print(head);}else if(i==6){head = read();int i;printf("\t\t");printf("************1.学号排序;********************\n");printf("\t\t");printf("************2.平均成绩排序;****************\n");printf("\t\t");printf("************3.数学成绩排序;****************\n"); printf("\t\t");printf("************4.英语成绩排序;****************\n"); printf("\t\t");printf("************5.C语言成绩排序;***************\n");printf("请输入相应的排序代号:");scanf("%d",&i);sort_down(head,i);}else if(i==7){head=read();int min,max;char subject[20];printf("\t\t");printf("************数学(maths);***************\n");printf("\t\t");printf("************英语(english);*************\n");printf("\t\t");printf("***********C语言(C_program);***********\n");printf("请选择要统计的项目:\n");scanf("%s",subject);getchar();while((strcmp(subject,"maths")!=0&&strcmp(subject,"english")!=0&&strcmp(subject,"C_pro gram")!=0)){printf("输入错误!");printf("\t\t");printf("************数学(maths);***********\n");printf("\t\t");printf("************英语(english);***********\n");printf("\t\t");printf("***********C语言(C_program);***********\n");printf("请选择要统计的项目:\n");scanf("%s",subject);getchar();}printf("请输入分数段的区间:");printf("区间上限:");scanf("%d",&max);printf("区间下限:");scanf("%d",&min);while(min>=max){printf("输入的下限大于等于上限,错误!");printf("请重新输入分数段的区间:");printf("区间上限:");scanf("%d",max);printf("区间下限:");scanf("%d",min);}sta(head,subject,max,min);}else if(i==8){printf("\t\t");printf("************************************\n");printf("\t\t");printf("**************感谢使用**************\n");printf("\t\t");printf("************************************\n");k=0;}}//选择功能void menu(){int i;printf("\t\t");printf("***********1.信息浏览;***********\n");printf("\t\t");printf("***********2.信息查询;***********\n");printf("\t\t");printf("***********3.信息修改;***********\n");printf("\t\t");printf("***********4.信息添加;***********\n");printf("\t\t");printf("***********5.信息删除;***********\n");printf("\t\t");printf("***********6.信息排序;***********\n");printf("\t\t");printf("***********7.信息统计;***********\n");printf("\t\t");printf("***********8,退出系统;***********\n");printf("请选择项目:");scanf("%d",&i);while(i<1||i>8){printf("输入错误,请重新输入:\n");printf("\t\t");printf("***********1.信息浏览;***********\n");printf("\t\t");printf("***********2.信息查询;***********\n");printf("\t\t");printf("***********3.信息修改;***********\n");printf("\t\t");printf("***********4.信息添加;***********\n");printf("\t\t");printf("***********5.信息删除;***********\n");printf("\t\t");printf("***********6.信息统计;***********\n");printf("\t\t");printf("***********7,退出系统;***********\n");printf("请重新选择项目:");scanf("%d",&i);}Chooseproject(i);}int _tmain(int argc, _TCHAR* argv[]){ struct student *head = NULL;printf("\t\t");printf("************************************************************\n");printf("\t\t");printf("*********************学生管理系***************************\n");printf("\t\t");printf("************************************************************\n" );printf("是否已经录入信息?\n");char c;printf("请输入 'y' 或 'n':");c=getchar();getchar();while(c!='n'&&c!='y'){printf("输入错误,请重新输入( 'y' 或 'n'):\n");c=getchar();getchar();}if(c=='n'){printf("请输入学生成绩:\n");head=creat();}while(k!=0){menu();}system("pause");return 0;}。
北航《C语言程序设计》答案
北航《C语言程序设计》答案北航《c语言程序设计》在线作业一单项选择和判断问题一、单选题(共15道试题,共60分。
)1.以下叙述中正确的是a、预处理命令行必须位于源文件的开头。
B.源文件的一行上可以有多个预处理命令。
C.宏名称必须用大写字母表示d.宏替换不占用程序的运行时间正确答案:d2.以下选项试图描述一个新的类型名称,其中正确的名称是a.typedefv1int;b、typedefv2=int;c、类型定义tv3;d、 typedefv4:int;正确答案:C3.c语言对嵌套if语句的规定是:else总是与()配对。
a.其之前最近的ifb.第一个ifc、其上一个最近的IFD没有其他的,如果具有相同的缩进位置,正确答案是:c4.已知:#definen3;执行语句i=n*3;后,i=_______.a.3b.6c.9d、以上这些都不正确。
正确答案:C5.以下选项中可作为c语言合法常量的是a.-8b.-080c.-8e1.0d.-80.0e正确答案:a6.以下不正确的c语言标识符是_____。
a.abcb.abcc.a_bcd.ab.c正确答案:D7.数组int**a[3][4]占据多大空间a、 64b。
12c。
48d。
一百二十八正确答案:c8.已知:intx,a,B;以下选项中错误的if语句是_;。
()a.if(a=b)x++;b.if (a)=正确答案:b9.以下可以正确表示字符类型常量为___。
a、 \b。
?Tc、 \d.297正确答案:b10.表达式:10=9的值为()a.trueb非零值c.0d一正确答案:d11.在C语言中,形式参数的默认存储类型是()a.autob registerc。
静力学。
外人正确答案:a12.假设在C语言中,一个int数据在内存中占用2个字节,那么无符号int数据的值范围是_u。
a、 0~255b。
0~32767c。
0~65535d.0~2147483647正确答案:c13.有以下声明:intb;charc[10];,正确的输入语句是a.Scanf(\b.Scanf(\c.Scanf(\d.Scanf)(\正确答案:b)14.为了避免嵌套的条件分支语句的二义性,c语言规定,c程序中的else总是与()组成配对关系。
c语言第四次上机作业参考答案
第四次上机作业参考答案:1.数组转置在主函数中定义一个n(1<=n<=6)维方阵,并从键盘读入数组元素;编写函数transpose(a,n)实现数组a转置;在主函数中输出转置后的方阵。
例:输入41 2 3 4 输出 1 5 9 135 6 7 8 2 6 10 149 10 11 12 3 7 11 1513 14 15 16 4 8 12 16#include <stdio.h>#define N 6void transpose(int a[][N],int n);void main( ){ int n,i,j;int a[N][N];printf("Input n(n<=6):");scanf("%d",&n);printf("Input the array:\n");for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);printf("Display the array:\n");for(i=0;i<n;i++){ for(j=0;j<n;j++)printf("%-4d",a[i][j]);printf("\n");}transpose(a,n);printf("Display the transposed array:\n");for(i=0;i<n;i++){ for(j=0;j<n;j++)printf("%-4d",a[i][j]);printf("\n");}}void transpose(int a[][N],int n){int i,j,t;for(i=0;i<n;i++)for(j=0;j<i;j++){ t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}2.学生信息编写4个函数实现下列功能:(1)函数input() 输入20个学生姓名和高考总分;(2)函数sort() 按高考总分从高到低的顺序排序,姓名顺序也随之调整;(3)函数display()显示学生姓名及其高考总分;(4)在主函数中输入一个姓名,编写函数search() 用顺序查找方法找出该学生。
北航大一上c语言第四五六七八次作业
3. 字母频率统计【问题描述】编写程序从标准输入中读入一段英文,统计其中小写字母出现次数,并以柱状图的形式显示其出现次数。
【输入形式】在标准输入上输入一段英文文章(可能有一行,也可能有多行),在新的一行的开头输入ctrl+z键表示结束。
【输出形式】在屏幕上依次输出表示每个小写字母出现次数的柱状图(以“*”字符表示柱状图,空白处用空格字符表示,某个小写字母出现多少次,就显示多少“*”字符;柱状图的高度以出现最多的字母次数为准),在最后一行依次输出26个小写字母。
【样例输入】The computing world has undergone arevolution since the publication ofThe C Programming Language in 1978.【样例输出】【样例说明】在输入的英文短文中,小写字母a出现了6次,所以其上输出了6个字符"*"。
出现次数最多的是字母n,所以柱状图的高度为9个字符。
字母j没有出现,所以其上都为空格字符。
【评分标准】该题要求输出柱状图表示的字母出现次数,共有5个测试点。
上传C语言文件名为bar.c。
【输入形式】从标准输入读取顶点坐标。
格式为:第一行是点的个数N(3≤N≤15),后面紧接着N 行,每行两个数字(由空格隔开),分别表示该点的X、Y坐标(0≤X,Y≤32767)。
所有点的坐标互不相同,且按顺时针次序给出。
输入数据确保该多边形是一个凸多边形。
【输出形式】向标准输出打印一个浮点数,是该多边形的面积。
该浮点数保留两位小数。
【输入样例】 43 330101 2【输出样例】5.00【样例说明】输入数据表示了如图所示的四边形。
其面积为5.00。
提示:求三角形面积可用海伦公式,求平方根可用<math.h>头文件中定义的sqrt函数。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:points.c。
北理C语言作业及答案1
8. 判断三角形的形状成绩: 10 / 折扣: 0.8要求:输入三角型的三条边,判断三角形的形状。
假设输入的三边边长均>0。
输入:三角型的3条边的长度(int型)。
输出:等边三角形:equilateral triangle等腰三角形:isoceles triangle不构成三角形:non-triangle一般三角形:triangle测试输入期待的输出10. 计算时钟的夹角成绩: 5 / 折扣: 0.8背景:钟面上的时针和分针之间的夹角总是在0 ~180之间( 包括0 和180 ) 。
举例来说,在十二点的时候两针之间的夹角为0 ,而在六点的时候夹角为180 ,在三点的时候为90 。
本题要解决的是计算12:00 到11:59 之间任意一个时间的夹角。
输入:每组测试数据包含两个数字:第一个数字代表小时( 大于0 小于等于12) ,第二个数字代表分( 在区间[0, 59] 上) 。
输出:对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。
输出格式如下所示。
测试输入期待的输出程#include"stdio.h"main(){int a,b;float c;scanf("%d %d",&a,&b);c=(b/60.0)*360-(30*(a%12)+(b/60.0)*30);if (c<0)c=-c;if (c>180.0)c=360.0-c;printf("At %d:%.2d the angle is %.1f degrees.\n",a,b,c);return 0;}11. 找出最大素数成绩: 5 / 折扣: 0.8素数是指一个只能被1和它本身整除的数,在数论中占有重要的研究地位,在当代密码学中也被广泛应用。
输入:取值范围输出:该范围内的最大素数期待的输出#include<stdio.h>void main(){int a,k,i,n;scanf("%d",&a);for(k=a;k>2;k--){{for(n=1,i=2;i<k;i++)if(k%i==0){n=0;break;}}if(n==1){printf("The max prime number is %d.\n",k);break;}}}12. 求最后3位数值成绩: 5 / 折扣: 0.8中学时我们就会求一个数的n 次方了,但计算机不会,请你来编写一个程序吧。
大学大一c语言程序设计实验室上机题全部代码答案(实验报告)
C语言实验报告实验1-1:hello world程序:源代码:#include<stdio.h>main(){printf("hello world!\n");system("pause");}实验1-2:完成3个数据的输入、求和并输出计算结果的程序:源代码:#include<stdio.h>main(){int i,j,k,sum;scanf("%d%d%d",&i,&j,&k);sum=i+j+k;printf("sum=%d",sum);system("pause");实验1-3:在屏幕上输出如下图形:ABBBCCCCC源代码:#include<stdio.h>main(){printf(" A\n");printf(" BBB\n");printf(" CCCCC\n");system("pause");}实验2-1:计算由键盘输入的任何两个双精度数据的平均值源代码:#include<stdio.h>main(){double a,b;scanf("%lf%lf",&a,&b);printf("%.1lf\n",(a+b)/2);system("pause");}实验2-2:写一个输入7个数据的程序,把输入的数据代入a + b * (c – d ) / e * f – g 表达式进行运算源代码:#include<stdio.h>main(){float a,b,c,d,e,f,g,x;scanf("%f%f%f%f%f%f%f",&a,&b,&c,&d,&e,&f,&g);x=a + b * (c - d ) / e * f - g;printf("x=%f",x);system("pause");}实验2-3:编写一个C语言程序,测试下列各表达式:i, ji + 1 , j + 1i++ , j++++i , ++ji+++++j源代码:#include<stdio.h>main(){int i=1,j=1;printf("%d %d\n",i+1,j+1);printf("%d %d\n",i++,j++);printf("%d %d\n",++i,++j);printf("%d\n",(i++)+(++j));system("pause");}实验2-4:输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest (税前),输出时保留2位小数。
2019北航 程序与设计 第一次上机题解
092\n"
"\\\'
单引号字符
039\n"
"\\\"
双引号字符
034\n"
"\\?
问号字符
063\n"
"\\0
空字符(NUL)
000\n"
"\\ddd 1到3位八进制数所代表的任意字符\n"
"\\xhh 十六进制所代表的任意字符\n"
"注意:\n1. 斜杠:\"/\"与反斜杠:\"\\\" ,此处不可互换\n"
AC代码
#include <stdio.h>
int main() {
int a, b; scanf("%d %d", &a, &b); printf("%d\n", a * b); return 0; }
D. 诶除闭
解题思路
这道题考察的是简单的输入输出,没有特别的要说的。
AC代码
#include <stdio.h> int main() {
C语言中整数除法默认是丢弃小数部分,例如5/2=2,(-7)/2=-3,所以对于正整数的除法默认就是 向下取整。
AC代码
#include <stdio.h>
int main() {
int sum=0,cnt=0,m; while(1) {
scanf("%d",&m); if(m==-1) break; cnt++; sum+=m; } printf("%d",sum/cnt);
c语言第五次作业
第五次作业:函数1.自然数的计算编写自己的两个函数,分别求出两个整数的最大公约数和最小的公倍数。
编写一个程序,功能是能够由键盘输入两个整数,并能调用自己编写的函数,计算并输出这两个整数的最大公约数和最小公倍数。
程序代码:#include<stdio.h>void main(){intgreatest_common(intx,int y),lowest_common(intx,int y);inta,b,c,d;printf("please input two integer:");scanf("%d,%d",&a,&b);c=greatest_common(a,b);d=lowest_common(a,b);printf("最大公约数为%d,最小公倍数为%d\n",c,d);}intgreatest_common(intx,int y){inti,min;if (x>y)min=y;else min=x;for(i=min;i>=1;i--)if ((x%i==0)&&(y%i==0))return(i);}intlowest_common(intx,int y){inti,max;if (x>y)max=x;elsemax=y;for (i=max;;i++)if((i%x==0)&&(i%y==0))return (i);}2.字符串连接请使用字符数组,编写自己的字符串连接函数。
编写一个程序,功能是能够由键盘输入两个字符串,并能调用自己编写的字符串连接函数,输出新的字符串。
#include<stdio.h>#include<string.h>void main(){char link(char a[40],char b[20]);char str1[40]={"0"},str2[20];printf("请输入第一个字符串:");gets(str1);printf("请输入第二个字符串:");gets(str2);printf("合并后的字符串为:\n");link(str1,str2);puts(str1);}char link(char a[40],char b[20]){inti,j;i=strlen(a);for(j=0;b[j]!=0;j++)a[i+j]=b[j];return(a[i]);}3. 三角函数请使用台劳级数编写自己的常用三角近似值计算函数,用于自己程序的调用。
2022年北京航空航天大学公共课《C语言》科目期末试卷A(有答案)
2022年北京航空航天大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读程序段:int a=1,b=2;if(a&b)printf("***\n");else printf("$$ $\n");以上程序段的输出结果是_______。
2、在C语言源程序中,一个变量代表【】。
3、C语言的源程序必须通过【】和【】后,才能被计算机执行。
4、若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为_______,n的值为_______。
5、若有定义语句:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为_______。
6、函数process是一个可对两个整型数a和b进行计算的通用函数;函数max()可求这两个数中的较大者,函数min()可求它们中的较小者。
已有调用语句process(a,b,max);和process(a,b,min);。
请填空。
void process(_______){int result;result=(*fun)(x,y);printf("%d\n",result);}7、下面程序段是找出整数的所有因子。
请填空。
scanf("%d",&x);i=1;for(;_______;){if(x%i==0)printf("%3d",i);i++;}8、设有如下结构体说明:struct ST{int a;float b;struct ST*c;doublex[3];}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。
_______9、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。
北航《C语言程序设计》答案
北航《C语言程序设计》答案```plaintext一、基本概念和语法1. 在C语言中,什么是标识符?答:标识符是由字母、数字和下划线组成的字符序列,用于给变量、函数等命名。
2. C语言的注释有哪几种形式?答:C语言的注释有单行注释(//)和多行注释(/* */)两种形式。
3. 请简要解释一下C语言中的变量声明和定义的区别。
答:变量声明是为变量分配内存空间,告诉编译器该变量的类型和名称;变量定义是在声明的基础上为变量分配初值。
4. C语言中有哪些基本数据类型?请列举并简要介绍。
答:C语言中有int、float、char、double、void等基本数据类型。
- int类型用于表示整数;- float和double类型用于表示浮点数;- char类型用于表示字符;- void类型用于表示无类型。
5. C语言中的运算符有哪些种类?请简要介绍一下算术运算符和逻辑运算符。
答:C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。
- 算术运算符用于完成基本的算术运算,如加法(+)、减法(-)、乘法(*)、除法(/)等;- 逻辑运算符用于处理逻辑判断,如与(&&)、或(||)、非(!)等。
二、流程控制语句1. C语言中的条件语句有哪些?请简要介绍if语句和switch语句。
答:C语言中的条件语句有if语句和switch语句。
- if语句用于判断条件是否成立,若条件为真,则执行相应的代码;- switch语句用于根据表达式的值选择执行不同的代码块。
2. 循环语句在C语言中有哪几种形式?请简要介绍while循环和for循环。
答:C语言中的循环语句有while循环、do-while循环和for循环。
- while循环用于在指定条件为真的情况下重复执行一段代码;- for循环结构更加灵活,通过初始化、条件和增量表达式来控制循环次数。
三、函数和数组1. C语言中的函数有哪些特点?请简要介绍函数的定义和调用。
北京航空航天大学《C语言程序设计》课件-第五章循环结构程序设计
2023/4/2
5.3 do-while语句
15
语句一般格式
do
{语句组} while (表达式);
功能:
– 先执行内嵌语句(循环体),之后计算 表达式的值,不为0(逻辑真)时,再 执行循环体并判断条件,直到表达式的 值为 0 结束循环,转去执行while下面 的语句。
2023/4/2
do-while循环的算法
for(n=100;n<=200;n++) {
if (n%7!=0) continue;
printf("%6d",n); j++; if (j%10==0)
printf("\n"); } printf(" \n j=%d\n",j); }
29
2023/4/2
5.5.2 循环中break的应用
30
功能:
}
无循环体
} 循环体
2023/4/2
5.5 循环结构中的跳转语句
25
有如下三种语句实现跳转: – continue语句 – break语句 – goto语句
功能:在循环语句的循环体中使用,可 以进行循环的流程控制
2023/4/2
5.5.1 continue语句及应用
26
功能:
– 中断循环体的本次执行(即跳过循环体中尚未 执行的语句),立即开始执行下一次循环。
– 利用break语句能够强迫终止本层循环, 转到后续语句执行。
while语句
表达式? N
Y
… break;
…
do-while语句
… break;
…
表达式? N
Y
C语言第四次作业
第四次作业:数组1.字符筛选编写一个程序,先输入一个字符串str1(长度不超过20),再输入一个单独的字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串打印出来。
例如:●输入:字符串str1为:86-010-********字符ch为:-●输出:字符串str2为:861062785001程序代码:#include<stdio.h>#include<string.h>void main(){int i,j=0,length;char str1[21],str2[21],ch;printf("字符串str1为:");gets(str1);printf("字符ch为:");scanf("%c",&ch);length=strlen(str1);for(i=0;i<=length;i++){if(str1[i]!=ch){str2[j]=str1[i];j++;}else continue;}puts(str2);}2.数据合并编写一个程序,能够输入两个预先从小到大排列的整数型数组(假设数组长度最大为20,数组输入时遇到数字0结束);要求将这两个数组的数字能够合并成为一个新的从小到大顺序排列的整数型数据,并将新数组输出。
例如:●输入:请输入第一个数组:1,2,3,12,16,20,25,40,0请输入第二个数组:4,5,6,15,18,20,21,22,25,38,45,0●输出:合并后的数组为:1,2,3,4,5,6,12,15,16,18,20,20,21,22,25,25,38,40,45/*编写一个程序,能够输入两个预先从小到大排列的整数型数组(假设数组长度最大为20,数组输入时遇到数字0结束);要求将这两个数组的数字能够合并成为一个新的从小到大顺序排列的整数型数据,并将新数组输出。
C语言第八次作业-推荐下载
当前编程题:14级第八次作业---统计整数1.【问题描述】输入若干个整数,统计出现次数最多的那个整数。
如果出现最多的整数有两个以上,打印最早输入的那个整数。
【输入形式】从标准输入读取输入。
第一行只有一个数字N(1≤N≤10000),代表整数的个数。
以后的N行每行有一个整数。
【输出形式】向标准输出打印出现次数最多的那个数字。
【输入样例】611-120300【输出样例】【样例说明】输入6个整数,其中出现次数最多的是0,共出现两次。
【评分标准】本题不准使用数学库函数。
运行时限1秒,正确得20分,每个测试点4分,提交程序名为count.c。
2.【问题描述】从键盘中读入最多不超过50个学生的学生信息(包括空格隔开的姓名、学号、年龄信息,以学号从低到高排序)【输入形式】每次键盘读入最多不超过50个学生的学生信息:第一行为学生人数;后面每一行为空格隔开的学生学号、姓名、年龄,其中学号和年龄都是整数。
【输出形式】分别以姓名顺序(从低到高)和年龄顺序(从低到高)将学生信息输出,每行输出一位学生的信息,其中学号占3位,姓名(英文)占6位,年龄占3位,均为右对齐。
年龄相同时按姓名从低到高排序。
两种顺序的输出结果用一行空行相隔。
【输入样例】41 aaa 2245 bbb 2354 ddd 20110 ccc 19【输出样例】1 aaa 2245 bbb 23110 ccc 1954 ddd 20110 ccc 1954 ddd 201 aaa 2245 bbb 23【样例说明】从键盘输入四个学生记录,分别按姓名和年龄排序并输出。
【评分标准】分别以姓名顺序和年龄顺序输出学生信息,完全正确得20分,每个测试点4分,提交程序名为students.c。
3.【问题描述】编写一个程序,输入N个用户的姓名和电话号码,按照用户姓名的词典顺序排列输出用户的姓名和电话号码。
【输入形式】用户首先在第一行输入一个正整数,该正整数表示待排序的用户数目,然后在下面多行输入多个用户的信息,每行的输入格式为:姓名电话。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 字母频率统计
【问题描述】
编写程序从标准输入中读入一段英文,统计其中小写字母出现次数,并以柱状图的形式显示其出现次数。
【输入形式】
在标准输入上输入一段英文文章(可能有一行,也可能有多行),在新的一行的开头输入ctrl+z键表示结束。
【输出形式】
在屏幕上依次输出表示每个小写字母出现次数的柱状图(以“*”字符表示柱状图,空白处用空格字符表示,某个小写字母出现多少次,就显示多少“*”字符;柱状图的高度以出现最多的字母次数为准),在最后一行依次输出26个小写字母。
【样例输入】
The computing world has undergone a
revolution since the publication of
The C Programming Language in 1978.
【样例输出】
【样例说明】
在输入的英文短文中,小写字母a出现了6次,所以其上输出了6个字符"*"。
出现次数最多的是字母n,所以柱状图的高度为9个字符。
字母j没有出现,所以其上都为空格字符。
【评分标准】
该题要求输出柱状图表示的字母出现次数,共有5个测试点。
上传C语言文件名为bar.c。
【输入形式】从标准输入读取顶点坐标。
格式为:第一行是点的个数N(3≤N≤15),后面紧接着N 行,每行两个数字(由空格隔开),分别表示该点的X、Y坐标(0≤X,Y≤32767)。
所有点的坐标互不相同,且按顺时针次序给出。
输入数据确保该多边形是一个凸多边形。
【输出形式】向标准输出打印一个浮点数,是该多边形的面积。
该浮点数保留两位小数。
【输入样例】 4
3 3
30
10
1 2
【输出样例】
5.00
【样例说明】输入数据表示了如图所示的四边形。
其面积为5.00。
提示:求三角形面积可用海伦公式,求平方根可用<math.h>头文件中定义的sqrt函数。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:points.c。
6. 【问题描述】
对输入的一篇文档,统计出现的所有单词及其所在行号和列号,即生成类似于词典的单词索引。
将其结果以规定格式输出。
【输入形式】
程序从文件crossin.txt读入一篇文档。
该文档由若干行组成,每行中包含一系列单词。
行号和列号由1开始计数。
该文档中单词总量不确定,每个单词长度最大不超过100个字符。
【输出形式】
将输入文档中所有出现的单词及其所在行号和列号输出到文件crossout.txt中。
输出有若干行,每一行都是文档中出现的一个单词。
按如下规格输出:
word:(line1,colm1),(line2,colm2), … ,(lineN,colmN)
其中word是单词,后面紧跟一个冒号,然后是以逗号隔开的出现的行号和列号
(line1,colm1),(line2,colm2),等等。
在该行上各字符紧密输出,不使用空格分隔。
在输出时遵循以下规定:
1. 只输出所有由英文字母(包括连字符)构成的单词,数字或包含其它特殊字符的单词不用输出,而且连字符不能作为单词首字符。
先输出大写A—Z开头的字符,再输出小写a—z开头的字符。
2. 各单词后面的行号和列号从小到大排列。
3. 统计的单词不包括如下四个单词:
a
an
the
and
【样例输入】
Alcatel provides end-to-end solutions.
It enables enterprises to deliver content to any type of user.
lcatel operates in 130 countries.
Alcatel focus on optimizing their service offerings and revenue streams.
【样例输出】
Alcatel:(1,1),(4,1)
It:(2,1)
any:(2,46)
content:(2,35)
countries:(3,24)
deliver:(2,27)
enables:(2,4)
end-to-end:(1,18)。