重庆大学C语言
- 格式:doc
- 大小:52.50 KB
- 文档页数:5
重庆大学2019年全国硕士研究生招生考试试题科目代码:877科目名称:C语言程序设计和数据库原理及应用总分:150分特别提醒:1、所有答案一律写在答题纸上,写在试题或草稿纸上无效,不给分。
2、该科目考生需携带的特殊文具:三角板(如无存储功能计算器、三角板、量角器、绘图工具等),如无特殊要求,则在横线处填写“无”;3、如有选做题,考生须按要求选答,如果多答,则评卷时以答题顺序先者为有效。
一、单项选择题(19题,1-18题每题2分,19题4分,共40分)1、已知 float a;Int b=1;执行语句“a=b++/3;”后,变量a的值是()。
A)2/3 B)1 C)1/3 D)02、表达式8/4*(Int)2.5/(Int)(1.25*(3.7+2.3)值的数据类型为()。
A)int B)float C)double D)不确定3、以下描述中正确的是()。
A)由于 do-while环中循环体语句能是一条可执标语句,所以循环体内不能使用复合语句。
B)do-while循坏do开始,用while结束,在while(表达式)后面不能写分号C)在 do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中,根据情况可以省略while4、为了判断两个字符串s1和s2是否相等,应当使用()A.if(s1==s2)B. if(s1=s2)C.if(strcpy(sl,s2))D.if(strcmp(sl,s 2)==0)5、下面程序片段(字符串内没有空格字符)的输出结果是()。
printf("%d\n",strlen("ATS\n012\\"));A)11 B)10 C)9 D)86、下列程序是求1到100的累加和,其中有1个不能够完成规定的功能,是()A)int s=0,i=1;B)int s=0,i=1;while(i<=100)s+=i++;while(i++<100)s+=i;C)int s=0,i=0;D)int s=0,i=0;while(i<100)s+=++i;While(++i<=100)s+=i;7、根据C语言规定,可知以下不正确的说法是()。
全国计算机等级考试(NCRE)二级C第10讲全国计算机二级公共基础知识C 语言程序设计知识结构C语言程序设计知识结构主要内容⏹1、数据结构与算法⏹2、程序设计基础⏹3、软件工程基础⏹4、数据库设计基础算法的定义对解题方案准确而完整的描述称为算法。
算法是程序设计的核心算法的基本概念P1算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。
通俗点说,就是计算机解题的过程(计算的方法)。
在这个过程中,无论是形成解题思路(推理实现的算法)还是编写程序(操作实现的算法),都是在实施某种算法。
例:n 个数从大到小进行排序。
有多种排序方法,常用的有冒泡排序、选择排序等。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
常考点算法的基本特征P1一个算法应该具有以下五个重要的特征:⏹有穷性⏹确定性⏹输入⏹输出⏹可行性一个算法必须保证执行有限步之后结束;算法的每一步骤必须有确切的定义;一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;一个算法有一个或多个输出,以反映对输入数据加工后的结果。
没有输出的算法是毫无意义的;算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成拥有足够的情报常考点算法与计算机程序算法____是一组逻辑步骤程序——用计算机语言描述的算法算法的表示INPUT r S=3.14 * r*r PTINT S 开始输入RS=3.14 *R*R 输出S结束问题:输入园的半径,计算园的面积一个算法的表示需要使用一些语言形式。
传统的算法-------图形法,如“流程图”和N-S 图目前常用的方法-------使用伪码描述算法。
算法好坏的描述:时间复杂度空间复杂度一般考点算法的复杂度⏹是算法效率的度量:时间复杂度和空间复杂度。
⏹表示:O(1)\O(n)\O(n^2)⏹算法时间复杂度:指执行算法所需要的计算工作量。
通常,一个算法所用的时间包括编译时间和运行时间。
川渝考研提供:历年考研试题及答案、辅导笔记、专业课及公共培训等、电话:1359402530重庆大学2017年硕士研究生入学考试试题科目代码:877科目名称:C语言程序设计和数据库原理及应用总分:150分特别提醒:1.所有答案一律写在答题纸上,直接写在试题和草稿纸上无效,不给分。
2.该科目考生需携带的特殊文具:无(如无存储功能计算器、三角板、量角器、绘图工具等)。
如无说明,则视为对文具无特殊要求,并在横线处填写“无”。
一、单项选择题(20题,每题2分,共40分)1.一个C程序的执行是从()。
A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序支件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一函数开始,到本程序main函数结束2.以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.在C程序中,注释说明只能位于一条语句的后面D.C程序的基本组成单位是函数3.以下不正确的叙述是()。
A.在C程序中,逗号运算符的优先级最低B.在C程序中,APH和aph是两个不同的变量C.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变。
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
4.下列四组选项中,均不是C语言关键字的选项是()。
A. define IF typeB. get char printfC. include scanf caseD. while go pow5.下面四个选项中,均是不合法的用户标识符的选项是()。
A.A P_0 doB.float la0 _AC.b-a goto intD._123 temp INT6.已有定义int x:float y;且执行scanf(“%3d%f”,&x,&y),语句,若从第一列开始输入数据12345 678,则y的值为()。
重庆大学c语言期末试题及答案一、选择题(每题2分,共20分)1. 下列选项中,哪个是C语言的关键字?A. intB. floatC. doubleD. all of the above答案:D2. 在C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. class答案:A3. 下列哪个运算符用于将一个浮点数转换为整数?A. %B. /C. +D. -答案:A4. 在C语言中,用于定义一个函数的关键字是?A. defineB. functionC. intD. void答案:C5. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. whileD. for答案:B二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是____。
答案:int2. 用于在C语言中声明一个数组的关键字是____。
答案:array3. 在C语言中,____运算符用于比较两个值是否相等。
答案:==4. 在C语言中,____函数用于将字符串连接到另一个字符串的末尾。
答案:strcat5. 在C语言中,____函数用于将一个字符串复制到另一个字符串。
答案:strcpy三、编程题(每题10分,共60分)1. 编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```2. 编写一个C语言程序,实现字符串反转。
答案:```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```3. 编写一个C语言程序,计算并输出100以内所有奇数的乘积。
大一新生c语言知识点汇总C语言是一门广泛应用于计算机科学领域的编程语言,作为大一新生,学习和掌握C语言的基础知识是非常重要的。
下面将对大一新生需要了解的C语言知识点进行汇总。
一、基本概念和语法1. 数据类型:C语言中常见的数据类型包括整型、浮点型、字符型、布尔型等,学习者需要了解不同类型的变量声明和使用方法。
2. 变量和常量:学习者需要掌握如何声明变量,并了解常量的概念及其使用方法。
3. 运算符:C语言支持各种运算符,如算术运算符、关系运算符、逻辑运算符等。
学习者需要了解它们的优先级和使用方法。
4. 控制结构:C语言提供了分支语句(if-else语句、switch语句)和循环语句(for循环、while循环、do-while循环)来控制程序的流程。
二、函数和数组1. 函数:学习者需要了解函数的定义和调用方法,以及函数参数的传递方式(值传递、引用传递)。
2. 数组:C语言支持数组操作,学习者需要了解数组的声明和使用方法,以及如何进行数组的遍历和操作。
三、指针和内存管理1. 指针:指针是C语言的一项重要特性,学习者需要了解指针的概念、声明和使用方法。
2. 动态内存管理:C语言提供了动态内存分配的功能,学习者需要了解如何使用malloc()和free()函数来进行内存分配和释放。
四、字符和字符串处理1. 字符输入输出:学习者需要了解如何使用标准输入输出函数来读取和输出字符。
2. 字符串处理:C语言提供了一系列字符串处理函数,如strlen()、strcpy()、strcat()等,学习者需要了解它们的使用方法。
五、文件操作1. 文件读写:学习者需要了解如何使用C语言提供的文件操作函数来进行文件读写操作。
2. 文件打开和关闭:学习者需要了解如何正确地打开和关闭文件,并处理异常情况。
六、调试和错误处理1. 调试技巧:学习者需要了解如何使用调试器来定位和解决程序中的错误。
2. 错误处理:学习者需要了解如何处理程序中可能出现的错误,如运行时错误和逻辑错误。
重庆计算机二级c语言知识点总结重庆计算机二级C语言知识点总结一、C语言基础知识1. C语言的概念和特点- C语言是一种通用的高级编程语言,具有简洁的语法和强大的表达能力。
- C语言能够直接操作内存,对硬件进行底层控制,具有高效的性能。
- C语言具有丰富的标准库,可以方便地进行文件操作、字符串处理等任务。
2. C语言的基本语法- 变量和常量的定义和使用。
- 运算符和表达式的使用。
- 控制语句(if、switch、for、while等)的使用。
- 函数的定义和使用。
3. C语言的数据类型- 基本数据类型(int、float、char等):用于表示整数、浮点数和字符。
- 指针类型:用于表示内存地址。
- 数组类型:用于表示一组相同类型的数据。
- 结构体类型:用于表示一个复合的数据结构。
- 枚举类型:用于表示一组离散的值。
4. C语言的输入和输出- 标准输入函数(scanf):用于从键盘读取输入数据。
- 标准输出函数(printf):用于向屏幕输出结果。
5. C语言的内存管理- 内存的分配和释放:使用malloc和free函数进行动态内存分配和释放。
- 内存的访问和操作:使用指针对内存地址进行读写操作。
二、C语言高级特性1. 指针和内存管理- 指针的概念和用法:指针是内存地址的表示,可以用于访问和操作内存。
- 指针的运算和应用:指针可以进行算术运算,并用于实现数据结构和算法。
2. 结构体和联合体- 结构体的定义和使用:结构体是一种复合的数据类型,可以包含多个不同类型的成员变量。
- 结构体的嵌套和引用:结构体可以嵌套定义和引用,用于表示更复杂的数据结构。
- 联合体的定义和使用:联合体是一种特殊的结构体,可以共享存储空间。
3. 指针和函数- 函数指针的定义和使用:函数指针可以指向函数,并用于实现回调函数等功能。
- 指针作为函数参数:可以使用指针作为函数参数,实现对变量的引用传递。
4. 动态内存管理- 动态内存分配和释放:使用malloc、calloc和realloc函数进行动态内存分配,使用free函数进行内存释放。
程序设计技术重点知识点一、C语言的基本概念(数据类型,常量,变量,表达式的书写方法等)典型运算符的使用(++,--,复合赋值等)关系运算和逻辑运算基本控制结构(特别注意++,--运算符的进入条件表达式)*参考例题1、2、3(包括:习题2、一4,5)二、函数的递归调用(进制转换/例题4,最大公约数/例题5e0515等)函数的指针参数(处理实参/例题6 e0504,返回多个值/例题7实验七等)穷举算法的实现(爱因斯坦阶梯/例题8,数字拆分(水仙花数)/例题9,素数/例题10等)宏代换的使用(不带参数/例题11e0525,带参数/例题12e0527)全局变量和局部静态变量(例题13习题5、一7)文件处理简单应用(文件处理模式/例题14,统计文件中的特定数据/例题15,用文件保存数据处理结果)三、数组元素的引用、指针与数组(用指针引用数组元素/例题16习题8 一、5)结构体数组与指针的关系(用指针访问结构体数据成员)(例题17、18习题10,一1、4)字符串处理基础(字符串的拷贝、链接,字符的插入/删除,字符或子串的统计、插入/删除等)例题19、20、、、例题1、#include<stdio.h>#include<math.h>void main(){ int a=1,b=5,c;c=++a||b++;printf("%d,%d,%d\n",a,b,c);c=sqrt(a+b)>2;printf("%d\n",c);for(c=a;c++<b;)printf("c=%d\n",c);while(a!=5&&c<7){ a++;c--;}printf("a=%d,c=%d\n",a,c);if(c%2)printf("c=%d\n",c);}例题2、#include<stdio.h>void main(){ int x=0,y=-1,z=-1;x+=-z---y;printf("%d,%d,%d\n",x,y,z);}//结果:2,-1,-2例题3、#include<stdio.h>void main(){ int x=-3;x+=x-=x*x;printf("x=%d\n",x);}//结果:x=-24例题4#include<stdio.h>void main(){ void transto8(int n);int num;printf("?num: ");scanf("%d",&num);transto8(num);printf("\n");}void transto8(int n){ if(n!=0){ transto8(n/8);printf("%d",n%8);}}例题5#include<stdio.h>void main(){ int Gcd(int m,int n); int num1,num2;printf("请输入两个正整数:");scanf("%d,%d",&num1,&num2) ;if(num1<num2)num1=num1+num2,num2=num1-n um2,num1=num1-num2;printf("%d与%d的最大公约数是:%d\n",num1,num2,Gcd(nu m1,num2));}int Gcd(int m,int n){ int r;if((r=m%n)==0)return n;elsereturn Gcd(n,r);}例题6#include<stdio.h>void main(){ void swap(int *x,int *y); int a=3,b=5;printf("swap函数调用前:a=%d,b=%d\n",a,b);swap(&a,&b);printf("swap函数调用后:a=%d,b=%d\n",a,b);}void swap(int *x,int *y) { int t;t=*x,*x=*y,*y=t;}例题7#include<stdio.h>void main(){ int addmul(int x,int y,int *m);int a=10,b=20,sum,mul; sum=addmul(a,b,&mul);printf("sum=%d,mul=%d\n",s um,mul);}int addmul(int x,int y,int *m){ int s;s=x+y;*m=x*y;return s;}例题8#include<stdio.h>void main(){ int i,j;for(i=0;i<=100;i++)for(j=0;j<=100;j++)if(30*i==7*j+1)printf("输出的结果为:%d\n",7*j);}例题9#include<stdio.h>void main(){ int a,b,c,n;printf("水仙花数:");for(n=100;n<999;n++){ a=n/100;b=n%100/10;c=n%10;if(n==a*a*a+b*b*b+c*c*c)printf("%4d、",n);}printf("\n");}例题10#include<stdio.h>#include<math.h>void main(){ int a,b,num,i,k;printf("Input a & b:"); scanf("%d,%d",&a,&b); for(num=a;num<=b;num++) { k=(int)sqrt(num); //标准函数库sqrt的返回值是double类型for(i=2;i<=k;i++)//内层循环用来寻找2 sqrt(num)之间能被num整除的数if(num%i==0)break;//如果找到能够被num整除的数,则提前退出内层for循环if(i>k)printf("%d是素数。
\n");}}例题11#include<stdio.h>#define N 2#define M N+2#define MN 2*Mvoid main(){ int x=MN;printf("x=%d\n",x);}例题12#include<stdio.h>#define Min(x,y) (x)<(y)?(x):(y)void main(){ int a=1,b=2,c=3,d=4,t; t=Min(a+b,c+d)*1000;printf("t=%d\n",t);}例题13#include<stdio.h>int a,b,c,d;void main(){ void p(int a,int b);a=b=c=d;printf("%d,%d,%d,%d\n",a,b ,c,d);p(a,b);printf("%d,%d,%d,%d\n",a,b ,c,d);}void p(int a,int b){ static int c;a++,b++;c-=10,d+=5;if(a<3)p(a,b);printf("%d,%d,%d,%d\n",a,b ,c,d);}例题14#include<stdio.h>void main(){ FILE *f1;char c='A';int i;for(i=0;i<10;i++){ f1=fopen("data.txt","w" );fputc(c,f1);fclose(f1);}}例题15#include<stdio.h>void main(){ FILE *fp;int c1,c2,c3,c4;char c;c1=c2=c3=c4=0;if((fp=fopen("mydata.txt","r"))==NULL){ printf("Can't open file.\n");return;}c=fgetc(fp);while(c!=EOF){ c1=c1+1;if(c>='A'&&c<+'Z'||c>='a'& &c<='z')c2=c2+1;else if(c>='0'&&c<='9') c3++;else if(c=='\n')c4++;c=fgetc(fp);}printf("字符:%4d\n字母:%4d\n数字:%4d\n行数:%4d\n",c1,c2,c3,c4);fclose;}例题16#include<stdio.h>#define M 5void f(int *v);void main(){ int b[M][M]={{13,12},{0},{3,5, 8},{5,6}},i,j;f(b[1]);for(i=0,i<M;i++){ for(i=0,j<M;j++)printf("%3d",*(*(b+i)+j)); printf("\n");}}void f(int *v){ int i;for(i=0;i<M*(M-1);i++) *(v+i)+=3;}例题17#include<stdio.h>struct T{ int x;char c;};void main(){ void f(struct T b);struct T a={110,'z'};f(a);printf("%d,%c\n",a.x,a.c); }void f(struct T b){ b.x=20;b.c='y';}例题18#include<stdio.h>void main(){ struct T{ int x;int *y;}*p;int dt[]={10,20,30,40}; struct T d[]={50,&dt[1],70,&dt[2],8 0,&dt[3]};p=d;printf("%d\n",++p->x); printf("%d\n",(++p)->x);printf("%d\n",++(*p->y)); }例题19#include<stdio.h>#include<string.h>void main(){ int countsubstr(char *s,char c);char s1[100],ch,n;gets(s1);ch=getchar();n=countsubstr(s1,ch);printf("n=%d\n",n);}int countsubstr(char *s,char c){ int i=0,counter=0;while(s[i]){ if(s[i]==c)counter++;i++;}return counter;}例题20#include<stdio.h>#include<string.h>void main(){ int countsubstr(char *s,char *t);char s1[100],s2[100],n; gets(s1);gets(s2);n=countsubstr(s1,s2);printf("n=%d\n",n);}int countsubstr(char *s,char *t){ int i=0,counter=0;while(*(s+i)){ if(strncmp(s+i,t,strlen (t))==0)counter++;i++;}return counter;}。