南昌航空大学历届C语言课设选题
c语言课程设计参考题目
c语言课程设计参考题目
以下是一些可以作为C语言课程设计参考的题目:
1. 编写一个简单的C程序,实现一个计算器的功能,包括按键输入、按位运算、结果输出等。
2. 设计一个C语言的数据结构,例如链表、树、图等。
3. 实现一个简单的程序,用于检测一个字符串是否包含某个特
定的字符集。
4. 设计一个C程序,实现一个文件管理系统,包括文件读取、修改、删除、创建等操作。
5. 编写一个C程序,模拟一个简单的计算机操作系统,例如进程
管理、内存管理等。
6. 设计一个C程序,用于处理一个字符串,包括查找特定字符、
替换特定字符、翻译文本等。
7. 实现一个简单的编译器,用于编译C程序。
8. 设计一个C程序,用于实现一个网络应用程序,包括用户登录、数据发送、数据接收等。
9. 编写一个C程序,用于实现一个简单的图形用户界面,例如窗口、菜单、按钮等。
10. 设计一个C程序,用于处理一个音频播放器,包括音频读取、播放、暂停、中断等。
这些题目都是相对来说比较难的,但也都是C语言编程中比较经
典的应用场景。
通过这些题目的训练,可以帮助学生更好地掌握C语
言的编程思想和技巧。
南航C语言_课设
、程序简介:程序名称:学生成绩简单管理程序二(Student Score Manager )程序功能: 程序主要功能是用于学生成绩的管理,可以帮助统计人员对学生成绩进行简单的管理,程序包括:10个菜单项,其中9个管理项、1个为退出程序项。
菜单项包括:一1. Create List:按学生姓名汉语拼音顺序建立有序列表。
2. Display All Record:在屏幕上显示列表记录。
3. Insert a Record:向已建立的有序列表中按序添加记录。
4. Delete a Record:在有序列表中查找并删除记录。
5. Query:给出学生姓名,在有序列表中查找相关记录并在屏幕上显示该记录。
6. Add Records from a Text File:从文本文档输入学生记录并按序插入已有列表。
7. Write to a Text File:将列表写入指定位置的文档。
8. Reverse List:将现有列表按逆序存放。
9. Delete the Same Record:删除列表中相同姓名的记录。
0. Quit:退出程序。
、题目分析及心得感想题目分析:该程序要求9个子程序项,分别实现9个不同的操作。
分析后知:需建立14个函数才能实现。
函数的具体解析请参见第三部分的源文件中。
编程中所遇到问题及解决:(1)在程序刚写完时,找出所有错误后,运行程序,但不能完美执行程序的第一项功能:即在进入1.Create List 程序项后,一次只能输入一个学生的信息。
一旦输入一次后,自动调回到主选单(如上图所示)分析后发现:{printf("Do You Want To Continue To Input?(Y/N)\n");scanf("%s", a);while( strcmp (a,"Y")!=0&& strcmp ( a,"N")!=0)}其中的a在函数的开头已被定义,且自己下意识的将其赋值为:a=‘Y’由于这个错误,使a成为了一个该函数中的一个全局变量,而后的对a的输入赋值对其不起任何作用,于是导致了我设计的程序不能循环输入学生成绩。
C语言课程设计参考题目
C语言课程设计参考题目一、基本要求题目1、一司机出车祸后驾车逃离现场,第一位目击者记得车牌号前两位数字相同,且后两位数字也相同;第二位目击者是一位数学家,他看出车牌号是四位完全平方数。
试编程推算肇事车的车牌号。
2、有17个人围成一圈,从0号的人开始报数,凡报到3的倍数的人离开圈子,然后再数下去。
直到最后只剩下一个人为止。
问此人原来的位置是多少号。
3、编写一个程序,求3X4数组的转置矩阵。
要求在main函数里读数,在change 函数里把矩阵转置。
4、编写函数,求取两个整数m,n的最大公约数和最小公倍数。
5、用指向指针的方法对n个整数排序并输出。
要求将排序单独写成一个函数。
N 个整数在主函数中输入。
最后在主函数中输出。
6、有n个学生,每个学生的数据包括学号、姓名、年龄和两科成绩。
请编程用结构类型的数据处理方式实现如下目标:(1)在main函数中输入原始数据;(2)在count 函数中输出各学生的总分和平均分;(3)输出总分最高的学生;(4)编写sort函数将各学生的数据按总分降序输出。
7、编写求子串函数substr(s,n1,n2),在串s中从n1位置开始取n2个字符的子串8、文件加密程序:将待加密文件以二进制打开,读入32个字节,分别与口令异或,在将4、5、6三个字分别与0xaaaa异或,即完成加密,执行第二次就解密9、编写字串 str1 中找出所有小写字母转成大写字母,大写字母转成小写字母后,结果依次存入字符数组 str2 中,str1 不变仍为原字串的程序。
例如,字符串str1 为 "91A2BC. a1bc",调用函数 fun 后,字符数组 str2将存入"91a2bc. A1BC",str1仍然是"91A2BC. a1bc"。
10、编写一个将某个范围在-32768~32767之间的整数转换为R进制(R=2,5,8,16)的通用程序。
c语言课程设计选题
c语言课程设计选题一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生具备基本的程序设计能力和良好的编程习惯。
具体目标如下:1.知识目标:(1)理解C语言的基本语法和编程规范;(2)掌握基本数据类型、运算符、表达式和语句;(3)熟悉函数的定义和调用;(4)了解数组、字符串、指针的概念和应用;(5)理解常用的数据结构和算法。
2.技能目标:(1)能够使用C语言编写简单的程序;(2)具备基本的调试和排查程序错误的能力;(3)掌握基本的算法分析和设计方法;(4)能够阅读和理解他人的代码。
3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣和热情;(2)培养学生勇于探索、积极思考的科学精神;(3)培养学生团队协作和相互学习的良好品质。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程思想。
具体安排如下:1.C语言基本语法和编程规范;2.基本数据类型、运算符、表达式和语句;3.函数的定义和调用;4.数组、字符串、指针的概念和应用;5.常用的数据结构和算法;6.程序设计的基本方法和技巧。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
具体安排如下:1.讲授法:通过讲解C语言的基本语法、数据结构和算法,使学生掌握相关知识;2.讨论法:学生进行小组讨论,培养学生的团队协作能力和解决问题的能力;3.案例分析法:分析典型的编程案例,使学生了解C语言在实际应用中的重要性;4.实验法:让学生通过上机实验,动手编写代码,提高编程能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《C程序设计语言》(K&R);2.参考书:《C Primer Plus》、《C和指针》;3.多媒体资料:课件、教学视频;4.实验设备:计算机、网络环境。
C语言课程设计方案选题
一、C语言课程设计选题如下(每个题目不能超过五人选择)1、课题:设计一个万年历功能要求:1、输入年份,分段返回全年的日历(包含年份、月份和星期)2、注意闰年情况2、课题:设计简单的计算器功能要求:1、采用菜单选择方式实现,判断采用加、减、乘、除2、选择一种法则后输入两个待计算的数,输出计算结果3、课题:做一个猜数游戏功能要求:1、计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到2、猜中后给出所用的时间和评语4、课题:将任一整数转换为二进制形式功能要求:将任一整数转换为二进制形式并输出5、课题:小学生测验程序功能要求:1、电脑随机出10道题,每题10分,程序结束时显示学生得分2、不能有负数3、每道题有三次机会输入答案,当输入错误答案时,提醒学生重新输入,若三次机会结束则输出正确答案4、对于每道题,第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分5、总成绩90以上显示“SMART”,80-90: GOOD 70-80: OK 60-70:PASS60以下:TRY AGAIN6、课题:24游戏功能要求:输入四个一位数,通过加减乘除,允许加入括号,计算出24,显示计算过程,并提示成功信息7、课题:大数相乘功能要求:1、大整数指超过十位的十进制整数,这里为简便,假定不超过五十位。
这类大整数在C语言系统中因超界溢出,是不能直接表达和计算的。
可以用数组来表示大整数,在此基础上编写出实现大整数相乘的程序。
8、课题:十六进制转换为十进制功能要求:实现输入一个十六进制,转换为十进制的设计9、课题:位数大小排序功能要求:输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数,并输出这个整数。
10、课题:回文数的形成功能要求:任取一个十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后重复以上步骤,则最终可得到一个回文数。
2022年南昌航空大学公共课《C语言》科目期末试卷A(有答案)
2022年南昌航空大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读程序段:int a=-1;a=a|0377;printf("%d,%o\n",a,a);以上程序段的输出结果是_______。
2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、C语言的源程序必须通过【】和【】后,才能被计算机执行。
4、在C语言中,用“\”开头的字符序列称为转义字符。
转义字符“\n”的功能是_______;转义字符“\r”的功能是_______。
5、把以下多项式写成只含7次乘法运算,其余皆为加、减运算的C语言表达式为_______。
5x7+3x6-4x5+2x1+x3-6x2+x+106、若有定义:int a[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[3],k;则下面程序段的输出是_______。
for(k=0;k<3;k++)q[k]=8.a[k*4];printf("%d\n",q[2][3]);7、下面程序段中循环体的执行次数是_______。
a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。
9、若有以下定义和语句,为使变量c1得到字符’A',变量c2得到字符’B’,正确的输入形式是_______。
char cl,c2;scanf("%4c%4c",&cl,8&c2);10、下面程序段将输出computer。
请填空。
char c[]="It is a computer";for(i=0;_______;i++){_______;printf("%c",c[j]);}二、选择题11、对应以下各代数式中,若变量a和x均为double类型,则不正确的C语言表达式是( )12、设以下变量均为int类型,则值不等于7的表达式是( )。
南昌航空大学c期末考试
南昌航空大学2005-2006学年第一学期期末考试B卷评分标准题号一二三合计满分30 54 16 100实得分一、单选题(以下10个选择题中只有一个答案是完全正确的)(10X3=30)多选、错选不给分1、执行以下语句后{int a=3,b=4,c=0;a=b=(c==1);},a与b 的值分别为(A)A)0,0 B) 4,0 C) 3,4 D)不确定2、for( T1 ; T2 ; T3;)可以省略的是(D)A)T1 B)T2 C)T3 D)A,B,C3、语句:func(); 不可能是(D )A)函数原型B)函数声明C)函数调用D)函数定义4、以下对递归的评价正确的是(C)A)效率高,可读性好B)效率高,可读性差C)效率底,可读性好D)效率低,可读性差5、对于语句:int a[10];与表达式a[2]=0不等价的是(A)A)*a+2=0 B) (a+1)[1]=0 C) *(a+2)=0 D) (a+2)[0]=06、以下程序中有语法错误的是(D)A) int *p;p++;B) int (*p)[10];p++C) int p;p++D) void I,*p;p++;7、以下哪个”hello”不是字符串常量(A)A) char buffer[]=”hello”B) char *P=”hello”C) if(”hello”==”hello”) …D) char *p[10]={ ”hello”,”aa”,…}8、对于struct STR{ int i;};STR a,b;STR *p=&a;以下语句不合法的是( A)A) STR.i=0; B) a.i=0; C) a=b; D)p->i=0;9.在C++中,数据封装要解决的问题是( D )。
A.数据规范化排列B.数据高速转换C.避免数据丢失D.保证数据完整性10、造函数与析构函数带参数情况是(C)A)都可以带B)都不可以带C)只有构造函数可以带D)只有析构函数可以带二、阅读以下程序并选择输出结果正确的一组(共54分)多选、错选不给分1、(8分)void swap1(int,int);void swap2(int *,int *);void main(){int x=4,y=5;swap1(x,y);cout<<”after swapping1”<<endl;cout<<"x:"<<x<<" y:"<<y<<endl;swap2(&x,&y);cout<<”after swapping2<<endl;cout<<"x:"<<x<<" y:"<<y<<endl;}void swap1(int x,int y){int temp=x;x=y;y=temp;}void swap2(int *x,int *y){int temp=*x;*x=*y;*y=temp;}运行以上程序,输出结果为以下内容(abcd)中若干项的组合:a、after swapping1...b、x:4 y:5c、after swapping2...d、x:5 y:4其中组合正确的是:(A )A) abcd B) adcb C)acbd D)cdab2(10)#include "iostream.h"#include "string.h"class A{public:A(int id=0){value=id;cout<<"Assigning A id "<<value<<endl;}~A(){cout<<"Destructing id "<<value<<endl;}protected:int value;};class B{public:B(char *s="NoName",int ssid=0){cout<<"Constructing B "<<s<<endl;strcpy(name,s);A id(ssid);}protected:char name[20];A id;};void main(){B s("Randy",2005);}运行以上程序,输出结果为以下内容(abcde)中若干项的组合:a、Constructing B Randyb、Assigning A id 0c、Assigning A id 2005d、Destructing id 0e、Destructing id 2005其中组合正确的是:(C)A)abcde B)cbade C)baced D)edcba3、(10)#include "iostream.h"#include "string.h"class B{public:B(char *s="NoName"){cout<<"Constructing new B "<<s<<endl;strcpy(name,s);}B(B & b){cout<<"Constructing copy of "<<<<endl;strcpy(name,"copy of ");strcat(name,);}{cout<<"Destructing "<<name<<endl;}protected:char name[20];};class C{public:C(B &b):b(){ cout<<"Constructing C\n"; }protected:B b;};void fn( C c){cout<<"In function fn()\n";}void main(){B b("Tom");C c(b);cout<<"Calling fn\n";fn(c);cout<<"Retrurned from fn\n";}运行以上程序,输出结果为以下内容(abcdefghij)中若干项的组合:a、Constructing new B Tomb、Constructing new B NoNamec、Constructing Cd、Calling fne、Constructing copy of NoNamef、In function fn()g、Destructing copy of NoNameh、Retrurned from fni、Destructing NoNamej、Destructing Tom其中组合正确的是:(A)A)abcdefghij B)acdbefghij C)abcdefgji D)bcdfeghij 4、(10分)#include "iostream.h"#include "string.h"class M{public:M(char *s);~M();static M *pFirst;M * pNext;char name[40];};M* M::pFirst=0;M::M(char *s){strcpy(name,s);pNext=pFirst;pFirst=this;}M::~M(){cout<<name<<endl;if(pFirst==this){pFirst=pNext;return;}for(M*t=pFirst;t;t=t->pNext)if(t->pNext==this){t->pNext=pNext;return;}}M *fn(){M* pm=new M("TOM");M fm("JIKE");return pm;}void main(){M m("JONE");M *pm=fn();M n("ROSE");delete pm;}运行以上程序,输出结果为以下内容(abcd)中若干项的组合:a、TOMb、JIKEc、ROSE其中组合正确的是:(B)A) badc B)bacd C) abcd D)cadb5、(8分)#include "iostream.h"class Shape{protected:double x,y;public:void setda(double I,double j){x=I;y=j;}virtual void disparea(){cout<<"No area display"<<endl;}};class Triangle:public Shape{public:void disparea(){cout<<"Triangle area "<<x*y*0.5<<endl;}};void main(){Shape *p,s;Triangle t;p=&t;p->setda(2.0,5.0);p->disparea();p=&s;p->setda(2.0,4.0);p->disparea();}运行以上程序,输出结果为以下内容(abc)中若干项的组合:运行以上程序,输出结果为以下内容的组合,a、Triangle area 5b、No area displayc、Triangle area 4其中组合正确的是:(A)A) ab B) bc C) ac D) ba6、(8分)#include "iostream.h"class OBJ{ public:OBJ(){cout<<"OBJ\n";}};class VISUAL_BASE{ public:VISUAL_BASE(){cout<<"VISUAL_BASE\n";}~VISUAL_BASE(){cout<<"DEL VISUAL_BASE\n";}};class BASE{ public:BASE(){cout<<"BASE\n";}~BASE(){cout<<"Del BASE\n";}};class Child:virtual public VISUAL_BASE,public BASE{ public:Child(){}protected:OBJ obj;};void main(){ Child c; }运行以上程序,输出结果为以下内容(abcde)中若干项的组合:a、BASEb、Del BASEc、OBJd、DEL VISUAL_BASEe、VISUAL_BASE其中组合正确的是:(B)A) abcde B) eacbd C) eacdb D) aecbd三、程序设计(16分)编写一个类(stack),实现简单的栈(提示:用链表结构实现)。
2022年南昌航空大学科技学院公共课《C语言》科目期末试卷A(有答案)
2022年南昌航空大学科技学院公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读程序段:int a=1,b=2;if(a&b)printf("***\n");else printf("$$ $\n");以上程序段的输出结果是_______。
2、结构化程序由________、________ 、________ 3种基本结构组成。
3、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是4、已知字母a的ASCIl码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-3'的值为_______。
5、若a、b和c均是int型变量,则执行表达式a=(b=4)+(c=2)后a的值为_______,b的值为_______,c的值为_______。
6、若有以下定义和语句,则在程序中可通过指针pt,用*(pt[i]+j)等4种形式引用数组元素x[i][],另3种形式分别是:_______、_______和_______。
(假设ij已正确说明并赋值。
)int x[10][6],(*pt)[6];pt=x;7、下面程序段是找出整数的所有因子。
请填空。
scanf("%d",&x);i=1;for(;_______;){if(x%i==0)printf("%3d",i);i++;}8、执行以下程序时,若从第一列开始输入数据,为使变量a=3、b=7、x=8.5、y=71.82、c1='A'、c2='a',正确的数据输入形式是_______。
#include <stdio.h>int main(){int a,b;float x,y;char cl,c2;scanf("a=%d b=%d",&.a,&.b);scanf("x=%f y=%",8.x,8.y);scanf("c1=%cc2=%c”,8.cl,8.c2);printf("a=%d,b=%d,x=%f,y=%f,cl=%c,c2=%c",a,b,x,y,cl,c2);return0;}9、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。
C语言期末测验试题南昌航空大学
C语言期末测验试题南昌航空大学1 / 10————————————————————————————————作者:————————————————————————————————日期:2 / 10C语言期末考试试题南昌航空大学一、单选题(1)若要定义一个具有5个元素的整型数组,以下错误的定义语句是A)int a[5]=﹛0﹜;B)int b[]={0,0,0,0,0};C)int c[2+3];D)int i=5,d[i];(2)以下选项中可用作C程序合法实数的是A).1e0 B)3.0e0.2 C)E9 D)9.12E(3)有以下程序段char name[20];int num;scanf("name=%s num=%d",name,&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001(4)if语句的基本形式是:if(表达式) 语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值 B)必须是整数值C)必须是正数 D)可以是任意合法的数值(5)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环(6)有以下程序#include <stdio.h>void main(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是A)3 B)2 C)1 D) 0(7)设有如下函数定义int fun(int k){ if (k<1) return 0;else if(k==1) return 1;else return fun(k-1)+1;}若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是A)2 B)3 C)4 D)5(8)设有定义:struct {char mark[12];int num1;double num2;} t1,t2;,若变量均已正确赋初值,则以下语句中错误的是A)t1=t2; B)t2.num1=t1.num1;C)t2.mark=t1.mark; D)t2.num2=t1.num2;(9)设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是A)写操作结束后可以从头开始读 B)只能写不能读C)可以在原有内容后追加写 D)可以随意读和写(10)以下叙述中错误的是A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言IDE的PC中不能运行C源程序生成的.exe文件(11)有以下程序#include <stdio.h>void main(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A)12 B)11 C)10 D)9(12)有以下程序#include <stdio.h>void main(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)3 C)7 D)8(13)有以下程序#include <stdio.h>void main(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);else putchar(i+c);} printf("\n");}程序运行后的输出结果是A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef(14)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));C)scanf("%lf",p+6); D)scanf("%lf",p[6]);(15)有以下程序段#include <stdio.h>void main(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将无限循环B)getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行(16)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A)p=s; B)p=k; C)p=s[0]; D)k=s;(17)有以下程序#include <stdio.h>void fun(char *c){ while(*c){ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}void main(){ char s[81];gets(s); fun(s); puts(s):}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A)hello beijing B)Hello BeijingC)HELLO BEIJING D)hELLO Beijing(18)有以下程序#include <stdio.h>void main(){ char a[30],b[30];scanf("%s",a);gets(b);printf("%s\n %s\n",a,b);}程序运行时若输入:how are you? I am fine<回车>则输出结果是A)how are you? B)how are you? C)how are you? I am fineD)howare you? I am fine(19)有以下程序#include <stdio.h>int fun (int x,int y){ if (x!=y) return ((x+y)/2);else return (x);}void main(){ int a=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序运行后的输出结果是A)3 B)6 C)8 D)12(20)有以下程序#include <stdio.h>struct S{ int a,b;}data[2]={10,100,20,200};void main(){ struct S p=data[1];printf("%d\n",++(p.a));}程序运行后的输出结果是A)10 B)11 C)20 D)21二、读程序写结果(1)阅读下列程序:#include <stdio.h>void main(){int a;a=(int)((double)(3/2)+0.5+(int)1.99*2);printf("%d\n",a);}上述程序的输出结果是(2)阅读下列程序:#include <stdio.h>int main(){ int i; int branch;double bonus,bon1,bon2,bon4,bon6,bon10;bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015;scanf("%d",&i);branch=i/100000;if (branch>10) branch=10;switch(branch){ case 0:bonus=i*0.1;break;case 1:bonus=bon1+(i-100000)*0.075;break;case 2:case 3: bonus=bon2+(i-200000)*0.05;break;case 4:case 5: bonus=bon4+(i-400000)*0.03;break;case 6: case 7: case 8:case 9: bonus=bon6+(i-600000)*0.015;break;case 10: bonus=bon10+(i-1000000)*0.01;}printf("奖金是%10.2f\n",bonus);return 0;}输入“234000”,上述程序的输出结果是(3)阅读下列程序:#include <stdio.h>#include <math.h>int main(){double x1,x0,f,f1;x1=1.5;do{x0=x1;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x1=x0-f/f1;}while(fabs(x1-x0)>=1e-5);printf("The root of equation is %5.2f\n",x1); return 0;}上述程序的输出结果是(4)阅读下列程序:#include <stdio.h>int main(){ int a[11]={1,4,6,9,13,16,19,28,40,100};int temp1,temp2,number,end,i,j;scanf("%d",&number);end=a[9];if (number>end)a[10]=number;else{for (i=0;i<10;i++){if (a[i]>number){temp1=a[i];a[i]=number;for (j=i+1;j<11;j++){temp2=a[j]; a[j]=temp1; temp1=temp2; }break;}}}for (i=0;i<11;i++)printf("%5d",a[i]);printf("\n");return 0;}输入“50”,上述程序的输出结果是(5)阅读下列程序:#include <stdio.h>struct student{int num; char name[20]; float score; };int main(){struct student stu[3]={{10101,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",86}};struct student temp;const int n=3;int i,j,k;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(stu[j].score>stu[k].score)k=j;temp=stu[k];stu[k]=stu[i];stu[i]=temp;}for(i=0;i<n;i++)printf("%6d %8s %6.2f\n",stu[i].num,stu[i].name,stu[i].score);printf("\n");return 0;}上述程序的输出结果是(6)阅读下列程序:#include <stdio.h>int main(){void copy_string(char *from, char *to);char *a="a teacher.";char b[]="a student.";char *p=b;printf("string a=%s\nstring b=%s\n",a,b);printf("\ncopy string a to string b:\n");copy_string(a,b);printf("string a=%s\nstring b=%s\n",a,b);return 0;}void copy_string(char *from, char *to){ for(;*from!='\0';from++,to++){*to=*from;}*to='\0';}上述程序的输出结果是三、改写程序1.输出结果如图A所示,修改程序,要求(1)不输出第一行的空行;(2)“3……”这行输出空行,如图B所示。
c语言课设题目
c语言课设题目
基础题目:
1. 计算两个整数的和、差、积和商。
2. 判断一个数是奇数还是偶数。
3. 打印九九乘法表。
4. 编写一个简单的计算器程序,支持基本的加减乘除运算。
5. 实现一个简单的猜数字游戏。
6. 将一个字符串反转。
7. 编写一个程序,找出数组中的最大值和最小值。
8. 实现一个简单的冒泡排序算法。
中级题目:
9. 编写一个简单的文件读写程序,将数据写入文件并从文件中读取。
10. 实现一个简单的链表,并进行基本的插入、删除和遍历操作。
11. 设计一个学生信息管理系统,可以添加、删除、修改和查找学生信息。
12. 编写一个简单的命令行文件管理器,实现基本的文件操作(复制、移动、删除等)。
13. 使用结构体和指针实现一个简单的图书管理系统。
14. 实现一个简单的计算器,支持括号和基本的数学函数。
15. 编写一个简单的多线程程序,实现并发执行。
高级题目:
16. 使用Socket 编写一个简单的客户端-服务器通信程序。
17. 实现一个简单的操作系统进程调度模拟器。
18. 设计一个简单的编译器,将自定义的简单语言编译成汇编代码。
19. 使用OpenGL 编写一个简单的图形界面程序。
20. 实现一个简单的数据库管理系统,支持基本的增删改查操作。
21. 编写一个简单的Web 服务器,能够处理HTTP 请求。
22. 设计一个简单的人工智能算法,如搜索算法或神经网络。
南昌航空大学C语言期末考试试卷
一、单项选择题(每题3分,共30分,注意:答案写在后面的答题卡内,否则0分)1、若有定义:int a=8, b=5, c;执行语句c = a/b+0.4 ;后,c的值为()。
A) 1.4 B) 1 C) 2.0 D) 22 、以下程序中,while 循环的次数是()。
#include <stdio.h>void main(void){ int i = 0;while (i<10) {if (i<1) continue;if (i= =5) break; i++; } }A) 1 B) 死循环,不能确定次数C) 6 D) 103、以下程序的输出结果是()。
#include <stdio.h>void main(void){ int a = 0, i;for (i=1; i<5; i++){ switch (i) { case 0:case 3: a += 2;case 1:case 2: a += 3;default: a += 5; }}printf(“%d\n”, a);}A) 31 B) 13 C) 10 D) 204、以下程序的输出结果是()。
#include <stdio.h>void main(void){ int a = 5, b = 4, c = 6, d;printf(“%d\n”, d=a>b?(a>c?a: c): b);}A) 5 B) 4 C) 6 D) 不确定5、执行以下程序后的输出结果是()#include <stdio.h>void main(void){char a[]=”abc\0abc”;printf(“%s”, a);}A) abc\0abc B) abc\ C) abc\0 D) abc6、当调用函数时,实参是一个数组名,则向函数传送的是()。
A) 数组的长度B) 数组的首地址C) 数组每一个元素的地址D) 数组每个元素中的值7、执行以下程序后,a的值为()。
南航 C语言课程设计 简单数学问题
C语言课程设计报告专业:电气工程及自动化班级:0312207******学号:*********指导教师:***时间:2013年5月目录1、摘要 (1)2、题目描述与解决方案 (1)3、设计感想与心得 (5)4、源程序及各函数的详细说明 (9)5、参考文献 (30)1、摘要报告将详细描述“简单数学问题”的C语言实现方案,程序代码将以C语言形式给出。
报告将包括源程序的解释说明,同时也包括作者在做课程设计过程中的心得体会。
2、题目描述与解决方案简单数学问题包含六个小问题。
程序对应设计了六个问题的算法并写出了代码。
设计如下:1、FindNum:采用穷举法,尝试0-9填充空白处,一旦满足等式则停止穷举并输出。
2、FindRoot:利用分类讨论思想。
读入方程系数,先按a系数确定是二次方程还是一次方程,对于二次方程,计算其根判别式的值,并分情况输出解。
对于一次方程,继续讨论系数,根据初等数学知识给出解的情况。
3、Detective:采用穷举法。
穷举31^2开始的所有四位数,并输出满足条件的结果。
4、Monkey:采用递推法。
递推式如下:f[i]=(f[i-1]+1)*2,i>=2 ;边界条件f[1]=1。
5、Diamond:采用模拟实现。
计算得每行应该输出的空格与星号数量并输出。
6、Caculator:采用模拟实现。
读取两个操作数与操作符并分情况出解。
3、设计感想与心得本学期修读C语言这门课程之前,我对计算机的认识仅仅浅显的局限于一个供人娱乐的多媒体设备而已。
还丝毫不明白为何现代化的办公已经离不开计算机,更不明白计算机如何解决工业,经济等各方面的问题。
这个学期,大学为我们安排了计算机编程语言这门课程,黄媛媛老师为我们的讲师,我开始了对计算机以及计算机功能的新的认识,无论现实中多么复杂的问题,在程序员的手中只需要把这一些列用巧妙的语言编译出来,而我们再将原始的数据输入到程序当中我们所求的答案便会清晰的出现在你的桌面上。
C语言课程设计参考题目及要求
C语言课程设计参考题目及要求C语言课程设计参考设计题目1、航班管理系统【功能需求】程序启动后显示主菜单,包括下面的选项:1. 显示航班列表2. 增加航班3. 删除航班4. 航班订票5. 航班退票6. 航班乘客显示 7. 航班存盘 8. 从文件调入 9. 退出按下相应的数字键后进入各自的子功能每个子功能执行完毕后,返回并显示主菜单【功能说明】1. 显示航班列表:在屏幕显示已登记的航班总数,及各航班的信息,包括航班号,出发地和目的地,起飞时间,落地时间,所用机型,座位数,价格。
(架设航班为每日一次)2. 增加航班:输入航班信息,包括航班号,出发地和目的地,起飞时间,落地时间,所用机型,座位数,价格。
3. 删除航班:输入要删除的航班号,删除该航班信息。
4. 航班订票:输入航班名,日期,乘客姓名,身份证号。
5. 航班退票:输入航班名,日期,身份证号,删除乘客信息。
6. 航班乘客显示:输入航班号和日期,显示该航班的座位号及乘客姓名,以及空余座位数。
7. 航班存盘:输入文件名,将航班信息存入文件。
8. 从文件调入:输入文件名,读取文件将数据调入,重新生成航班信息 9. 退出:退出程序,返回操作系统2、学生综合测评系统每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
提示:学生信息可先输入到数组中,排序后可写到文件中。
(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计选题1. 俄罗斯方块游戏(难度系数:A)实现传统的俄罗斯方块游戏基本功能:随机产生下一方块,方块移动、旋转、消行等操作(1)系统变量(基本)屏幕宽度(横向最多方块数)int i_screen_width (暂定10)屏幕高度(纵向最多方块数)int i_screen_height (暂定20)屏幕上方块数组:int a_screen[i_screen_width] [i_screen_height](a_screen[i][j] 等于1表示该位置有方块,如果没有,表示没有方块)方块类型数:int i_number(暂定7种方块)方块类型数组:int a_block[i_number * 4] (每种方块最多4种位置)方块类型对应屏幕位置数组:int a_block_pos[i_number * 4][2](每种方块最多4种位置,每个位置由2个坐标表示X与Y,0 < =X < i_screen_width, 0= < X < i_screen_height)当前方块ID:int i_cur_block(0 < = i_cur_block < i_number * 4)下一方块ID:int i_next_block(0 < = i_next_block < i_number * 4)当前得分:int l_score2. 五子棋游戏(难度系数:B)(1)系统变量(基本)棋盘宽度:int i_width(暂定20)棋盘高度:int i_height(暂定20)棋盘数组:int a_board[i_width][i_height] (a[i][j]等于1表示该位置是白棋,等于2表示该位置是黑棋,等于0表示没有棋子)当前下棋方:int i_cur_side (等于1表示等待白棋下子,等于2表示等待黑棋下子)棋局记录数组:int a_board_record [steps][i_width][i_height] (a[i][j][k]表示该棋局中第i 步的棋盘位置是a [j][k]3.21点游戏(难度系数:A)(1)系统变量(基本)纸牌类型:int i_type (暂定4种,黑桃、红心、梅花、方块)纸牌点数:int i_card (0<= i_card < 13)当前局牌库:int cards[i_card * i_type ] (当前待发的牌)当前纸牌:int i_cur_card (0 <= i_cur_card < i_card * i_type,35 代表梅花10,35 = 2*13 + 9)当前比赛选手数:int i_player_number (0 <= i_player_number < 10,可在比赛开始时动态指定)当前选手手中牌:int a_players[i_player_number][10] (每个选手当前手中的牌,players[1][10]表示选手2手中的牌,最多10张)当前选手得分:int a_scores[i_player_number] (scores[2] 表示选手3当前的总得分当前下注:int a_bets[i_player_number] (bets[0] 表示选手0当前局下注)牌局记录:int a_record_set[step][i_player_number][10] (记录牌局)(2)待实现的函数(基本)4. 中国象棋游戏(难度系数:A)(1)系统变量(基本)棋盘宽度:int i_board_width (固定的象棋棋盘宽度)棋盘高度:int i_board_height(固定的象棋棋盘高度)棋盘上棋子位置:int a_boards[i_board_width][i_board_height]当前下棋方:int i_cur_side (1—红方 2 –黑方)上次移动棋子:int i_chess (0 –6分别代表红方的帅仕相车马炮兵,7-13分别代表黑方的将士象车马炮卒)棋局记录:int [step][i_board_width][i_board_height] 记录棋局胜方:int i_success_side (1—红方 2 –黑方0 –表示当前未结束棋局)(1)系统变量(基本)屏幕宽度(横向最多方块数)int i_screen_width (暂定20)屏幕高度(纵向最多方块数)int i_screen_height (暂定20)当前蛇的方向:int i_direction当前蛇的长度:int i_length最大蛇身长度:int MAX_LENGTH = 30当前蛇的位置:int a_snakes[MAX_LENGTH]当前产生的食物位置:int a_pos[i_screen_width][i_screen_height] 当前速度:float f_speed当前得分:int l_score(1)系统变量(基本)当前棋盘:a_board[9][9] (board[4][5]表示第5行第6列位置上的元素,值如果为0-8,表示该位置上已经填了数,如果为-1,则表示没有填数根据游戏选择的难度,随机产生一串数字符串,要求用户记住并写出,然后进度比较,得出记忆能力。
(1)系统变量(基本)当前数字长度int i_length (0 <= i_length < 30)当前记忆数字序列:int a_number[i_length]回忆数字序列:int int a_try_number[i_length]猜中数字个数:int i_success总猜中数字个数:int i_total小型整数、实数、复数计算器,设计并实现一个小型计算器,包括如下功能:实现加减乘除等功能,并显示运算结果(1)系统变量(基本)暂无实现各种数制之间的转换(1)系统变量(基本)暂无定义一个多项式矩阵操作函数,实现多项式矩阵的操作(1)系统变量(基本)多项式行数int i_rows多项式列数int_i_cols多项式数据float a[i_rows][i_cols]大数一般指30位以上的十字进数字,超过double和long long数据类型的范围。
要求能实现以下功能:系统以文本菜单方式工作大数的输入大数的加法大数的减法运算结果的显示运算过程(输入和输出)写入到文件,并能查看(1)系统变量(基本)大数存储char*(2)待实现的函数(基本)大数一般指50位以上的十字进数字,超过double和long long数据类型的范围。
要求能实现以下功能:系统以文本菜单方式工作大数的输入大数的判断素数运算结果的显示运算过程(输入和输出)写入到文件,并能查看(1)系统变量(基本)大数存储char*13. 年历显示程序(难度系数:A)系统功能要求:输入一个年份,输出是在屏幕上显示该年的日历。
假定输入的年份在1940-2040年之间。
输入年月,输出该月的日历。
输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
输入年月日,输出前一天、后一天的操作(1)系统变量(基本)暂无14. 自动存取款机模拟(难度系数:B)登录功能:用户输入账户名和密码,可以登录A TM。
查询功能:登陆后,可以查询存款余额。
取款功能:登陆后,可以取款。
注意:取款额不能超过存款余额。
转账功能:登陆后,可以向其他账户转账。
存款功能:登陆后,可以向账户中存款。
(1)系统变量(基本)typedef struct{char name[10];//姓名long account;//账号char bank[10];//开户银行float money;//存款余额float rate;//利率char[6] password;//密码}customer;帐户信息存到文件文件中(2)待实现的函数(基本)模拟计算机的栈操作,数据先进后出,实现以下功能:存入数据取出数据清空栈统计栈中数据个数判断元素是否存在(1)系统变量(基本)int data[]int length(2)待实现的方法(基本)模拟计算机队列的运行方式,数据先进先出存入数据取出数据清空队列统计队列中数据个数判断元素是否存在(1)系统变量(基本)int data[]int length(2)待实现的方法(基本)模拟计算机中线性表运行过程。
存入数据取出数据清空线性表统计线性表中数据个数判断元素是否存在排序(1)系统变量(基本)int data[]int length(2)待实现的方法(基本)模拟计算机中映射表程序的运行过程。
存入数据取出数据清空映射表统计映射表中数据个数取出映射表的key数组取出映射表的value数组查询key 对应的value判断某个元素是否存在(1)系统变量(基本)int key[]char* value[]int length(2)待实现的方法(基本)模拟计算机中集合的运行过程,集合中元素不可以重复创建集合集合元素操作集合操作清空集合(1)系统变量(基本)int data[]int length20. 字符串工具(难度系数:A)实现以下常见的字符串操作:输入字符串从字符串中取出子串求字符串长度比较字符串大小取出字符检索子串(1)系统变量(基本)char*int length(2)待实现的方法(基本)21. 日期工具(难度系数:A)要求实现以下功能:创建日期日期差计算判断某个日期为星期几按格式输出日期(1)系统变量(基本)struct Date {int year,int month,int day,int hour,int minute,int second}(2)待实现的方法(基本)大二进制数一般指超过50位的二进制数。
试设计一数学计算器,使之能提供以下功能: 系统以文本菜单方式工作大二进制数的加法大二进制数的减法大二进制数转换为大十进制数大十进制数转换为大二进制数计算数据的输入及显示输出操作过程写入文件(包括输入、输出等),并能查看(1)系统变量(基本)char* numberint length(2)待实现的函数(基本)大二进制数一般指超过50位的二进制数。
试设计一逻辑运算器,使之能提供以下功能:系统以文本菜单方式工作大二进制数的与操作大二进制数的或操作大二进制数的非操作大二进制数转换为大十六进制数大十六进制数转换为大二进制数计算数据的输入及显示输出(1)系统变量(基本)char* numberint length(2)待实现的方法(基本)24. 迷宫游戏25. 管理信息系统模板:图书管理系统图书信息:登录号(ISBN)、书名、作者名、图书类别(自然科学、人文科学等)、出版单位、出版时间、价格、数量等。
图书借阅管理实现图书的入库、修改信息、删除、借阅、归还、续借管理,以及学生、教师(读者)管理,学生、教师借阅情况查询与阅览功能。