C程序设计200712A
详细完整版C程序设计pdf

表达式
由变量、常量、运算符等组成的符合语法规则的 式子,用于计算或表示某种逻辑关系。
数据类型转换
隐式类型转换
由编译器自动完成,如将整型值赋给浮点型 变量时,整型值会自动转换为浮点型。
显式类型转换
由程序员明确指定,如使用强制类型转换符将一种 数据类型转换为另一种数据类型。
数据类型转换的注意事项
在进行数据类型转换时,需要注意数据范围 、精度损失以及可能产生的溢出等问题。
for循环
通过初始化、条件和迭代三部分控制循环的 执行。
循环的中断和继续
使用break和continue语句控制循环的执行 流程。
控制结构的嵌套与综合应用
控制结构的嵌套
在一个控制结构内部包含另一个控制结构,如选择结构嵌套循环 结构。
综合应用示例
结合顺序、选择和循环结构,编写复杂的程序逻辑,如排序算法 、查找算法等。
详细完整版C程序设计 pdf
目 录
பைடு நூலகம்
• C语言概述与基础 • 数据类型、运算符与表达式 • 控制结构与程序设计 • 函数与模块化设计 • 数组与字符串处理 • 指针与内存管理 • 文件操作与数据处理
01
C语言概述与基础
C语言的历史与发展
C语言的起源
C语言最初是由丹尼斯·里奇(Dennis Ritchie)在1972年 为开发UNIX操作系统而设计的一种高级编程语言。
03
第一个C程序:Hello World
• printf("Hello, World! • ");
第一个C程序:Hello World
• return 0;
第一个C程序:Hello World
}
01
湖南省07-12年高考C语言真题

C语言真题(2007-2012)湖南省2007年五、程序设计题(本大题共4题,共90分)1、程序分析题。
写出下列程序运行的结果。
(每小题5分)(1)#include <stdio.h>main(){ int x=3;do {printf("%d",x-=2);} while(!(--x));}运行结果是_____________________________(2)#include<stdio.h>main(){int x=4,y=8,z;z=x<<2|y;printf("%d",z);}运行结果是_____________________________(3)#include <stdio.h>main(){ char x='E',y='e';printf("%c,",x=32);printf("%c,",(x--,++y));printf("%c\n",x==y?x+=32;y-=32);}运行结果是_____________________________(4)#include <stdio.h>main(){ int t=2;while (t<5)switch(t%2){ case 0:t++;printf("#");break;case 1:t+=2;printf("*");default:printf("\n");}}运行结果是_____________________________ (5)#include <stdio.h>main(){ char str1{50}=" Beijing 2008!",*q=str1;char str2[50]=" One World One Dream!",*p=str2;while(*p!='\0')p++;while(*q!='\0')P++=q++;*p='\0';printf("%s",str2);}运行结果是_____________________________(6)#include <stdio.h>#include <string.h>main(){ char s[]="abcdefg",t;int i=0,j=strlen(s)-1;while (i<j){ t=s[j];s[j]=s[i];s[i]=t;i++;j--}puts(s);}运行结果是_____________________________2、程序填空(每空5分,共30分)(1)下面程序的功能是求1000以内的完数。
2007年4月全国计算机等级考试二级笔试试卷 C语言程序设计

2007年4月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间120分钟,满分100分)一、选择题(1)下列叙述中正确的是()A)算法的效率只与问题的规模有关,而与数据的存储结构无关。
B)算法的时间复杂度是指执行算法所需要的计算工作量。
C)数据的逻辑结构与存储结构是一一对应的。
D)算法的时间复杂度与空间复杂度一定相关。
(2)在结构化程序设计中,模块划分的原则是()A)各模块应包括尽量多的功能B)各模块的规模应尽量大C)各模块之间的联系应尽量紧密D)模块内具有高内聚度、模块间具有低耦合度(3)下列叙述中正确的是()A)软件测试的主要目的是发现程序中的错误。
B)软件测试的主要目的是确定程序中错误的位置。
C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作。
D)软件测试是证明软件没有错误。
(4)下面选项中不属于面向对象程序设计特征的是()A )继承性B )多态性C )类比性D )封装性(5)下列对队列的叙述正确的是( )A )队列属于非线性表。
B )队列按“先进后出”原则组织数据。
C )队列在队尾删除数据。
D )队列按“先进先出”原则组织数据。
(6)对下面二叉树,进行前序遍历的结果为( )AXZFCYBE DA )DYBEAFCZXB) YDEBFZXCAC )ABDYECFXZD )ABCDEFXYZ(7)某二叉树中有n 个度为2的结点,则该二叉树中的叶子结点为( )A )n+1B )n-1C )2nD )n/2(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是( )A )并B )交C )投影D )笛卡儿乘积(9)在E-R 图中,用来表示实体之间联系的图形是( )A )矩形B )椭圆形C )菱形D )平行四边形(10)下列叙述中错误的是( )A )在数据库系统中,数据的物理结构必须与逻辑结构一致。
B )数据库技术的根本目标是要解决数据的共享问题。
C)数据库设计是指在已有数据库管理系统的基础上建立数据库。
C语言答案(删减版)

C语言答案()第一章C语言程序设计基础习题参考答案1-1 冯·诺依曼体系结构的基本原理:五大构成部分:输入、输出、CPU、控制器、存储器;程序存储、自动执行、逻辑判断功能;二进制的信息表示。
1-6 编辑、编译、链接、执行。
1-7 必须有一个主函数,它是程序执行的起点;一个C语言程序由函数构成;每一条可执行语句都必须由分号结束;函数的代码段必须由花括号对括住。
一个函数中的语句组由声明区和可执行语句区两部分构成。
1-8 三个一缩;每遇到一个结构时均缩格,每结束一个结构时回退;缩格格式必须对齐。
1-9 试给出以下问题的程序设计过程描述:1) 求两个数中之最大者。
#include<stdio.h>int main(void){float fA,fB;clrscr();printf("Please input two values(fA,fB)::"); /*输入要比较的两个数fA,fB*/scanf("%f,%f",&fA,&fB); /*格式化输入fA,fB*/if(fA>=fB) printf("the max is %f",fA);if(fA<fB) printf("the max is %f",fB);return 0;} /*main()函数结束*/2) 求三个数中之最大者。
#include<stdio.h>int main(void){float fA,fB,fC,fMax;printf("Please input three values(fA,fB,fC)::");/*fA,fB,fC是输入的3个数,fMax存放最大值*/scanf("%f,%f,%f",&fA,&fB,&fC);fMax=fA;/*假定fA最大*/if(fMax<fB) fMax=fB;if(fMax<fC) fMax=fC;printf("The max is %f\n",fMax);/*输出最大值*/return 0;} /*main()函数结束*/3) 求1+2+3+…+100,即。
C++2007试卷A答案

命题人: 审批人: 试卷分类(A 卷或B 卷) A五邑大学 试 卷学期: 2006 至 2007 学年度 第 2 学期 课程: 程序设计原理 专业: 计算机、电子、交通 班级: 姓名: 学号:30分,1.5*20)1、 C++源程序文件的扩展名为( A )A) .CPP B) .C C) .DLL D) .EXE 2、 下列各组中全是合法的字符串常量的是 ( A )A) "a+b " , "1+2=5" , "china " B) 'abc ' , 'xyz ' , '5' C) '123' , "456" , "789" D) '\n ' , "1+2=3" , "aaa " 3、 如果a=1,b=2,c=3,d=4则条件表达式“a>b?a :b <c?c :d ” 的值为( A ) A. 3 B. 2 C. 1 D. 4 2 4、 关于类型转换的说法中,错误的是(D )A )如果a 为int 型变量,b 为char 型,则a+b 的值为int 型B )如果a 为float 型变量,b 为int 型,则a-b 的值为float 型C )如果a 为double 型变量,b 为float 型,则a*b 的值为double 型D )如果a 为int 型变量,b 为int 型,则a/(double)b 的值为int 型 2 5、 编译程序的功能是( C )A 、将汇编语言程序转换为目标程序B 、将汇编语言程序转换为高级语言程序C 、将高级语言程序转换为目标程序D 、将高级语言程序转换为汇编语言程序6、 逻辑运算符两侧运算对象的数据类型 ( D )A) 只能是0或1 B) 只能是0或非0数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据逻辑运算符即是[ || ! &&]B)else字句与其之前最近的if配对C)else字句与其之后最近的if配对D)else字句与同一行上的if配对8、在函数声明中,下面哪项是没有的()A)函数参数的类型和参数名B)函数名C)函数类型D)函数体9、执行完C++程序中的下列3条语句后,c指向()int a,b,*c=&a; int * p=c; p=&b;A) p B) c C) b D) a10、定义如下一维数组:int a[5],*p=a; 则下面描述中,错误的是()A)表达式p=p+1是合法的B)表达式a=a+1是合法的C)表达式p-a是合法的D)表达式a+2是合法的11、以下对二维数组a的正确说明是( )A) int a[3][ ];B) float a(3, 4);C) double a[1][4];D) int a[10]={10*1};12、以下各项说法中,正确的是()A)当通过引用传递参数时,函数创建一个变量以存储参数的值B)当通过引用传递参数时,函数无法访问参数的值C)当通过引用传递参数时,调用程序创建一个临时变量以容纳参数的值D)当通过引用传递参数时,函数访问调用程序中参数的原始值13、下面不属于C++语言的基本数据类型的是()A)字符类型B)枚举类型C)逻辑类型D)整数类型14、下列关于类与对象的说法中,不正确的是()A)对象是类中的一个实例B)任何一个对象只能属于一个具体的类C)一个类只能有一个对象D)类与对象的关系和数据类型与变量的关系相似15、假定MyClass为一个类,那么下列的函数说明中,()为该类的析构函数。
2007年9月全国计算机二级(C语言程序设计)笔试真题及参考答案_百度文库

(39)有以下程序 #include #include void fun(char s[][10],int n) { char t;int i,j; for(i=0;ifor(j=i+1,j/*比较字符串的首字符大小,并交换字符串的首字 符 */ if(s[0])>s[j][0]{t=s[0];s[0]=s[j][0];s[j][0]=t;} } main() { char ss[ 5][10]={“bcc”,”bbcc”,”xy”,”aaaacc””aabcc”} fun(ss,5); printf(“% s,%s\n”,ss[0],ss[4]); } 程序运行结果是 A) xy,aaaacc B) aaaacc,xy C) xcc,a abcc D) acc,xabcc (40) 在一个 C 语言源程序文件中所定义的全局变量,其作用域为: A) 所在文 件的全部范围 B) 所在程序的全部范围 C) 所在函数的全部范围 D) 由具体定义位置 和 extern 说明来决定范围 (41)有以下程序 #include int a=1; int f(int c) {st atic int a=2; c=c+1; return (a++)+c;} main() { int i,k=0; for(i=0;i<2;i++) {int a=3;k+=f(a);} k+=a; printf(“%d\n”,k); } 程序运行结果是 A) 14 B) 15 C) 16 D) 17 (42)有以下程序 #include 6 void fun(int n,int *p) { int f1,f2; if(n==1||n==2) *p=1; else { fun(n -1,&f1); fun(n-2,&f2); *p=f1+f2; } } main() { int s; fun(3,&s); printf("%d \n",s); } 程序的运行结果是 A)2 B)3 C)4 D)5 (43)若程序中有宏定义行:#define N 100 则以下叙述中正确的是 A)宏定义行中定义了标识符 N 的值为整数 100 B)在编 译程序对 C 源程序进行预处理时用 100 替换标识符 N C) 对 C 源程序进行编译时用 100 替换标识符 N D)在运行时用 100 替换标识符 N (44)以下关于 typedef 的叙述 错误的是 A)用 typedef 可以增加新类型 B)typedef 只是将已存在的类型用一个新的 名字来代表 C)用 typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个 新名 D)用 typedef 为类型说明一个新名,通常可以增加程序的可读性 (45)有以下程 序 #include struct tt {int x;struct tt *y;} *p; struct tt a[4]={20,a+1,15, a+2,30,a+3,17,a}; main() { int i; p=a; for(i=1;i<=2;i++) {printf("%d,",p-> x); p=p->y;} } 程序的运行结果是 A)20,30, B)30,17 C)15,30, D)20,15, 7 (46)有以下程序 #include #include typedef struct{ char name[9];char se x; float score[2]; } STU; STU f(STU a) { STU b={"Zhao",'m',85.0,90.0}; int i; strcpy(a.name,b.name); a. sex=b.sex; for(i=0;i<2;i++) a.score=b.score; return a; } main() {STU c={"Qian",'f',95.0,92.0},d; d=f(c); printf("%s,%c ,%2.0f,%2.0f\n",d.name,d.sex,d.score[0],d.score[1]); } 程序的运行结果是 A) Qian,f,95,92 B)Qian,m,85,90 C)Zhao,m,85,90 D)Zhao,f,95,92 (47)设有以下定义 union data { int d1; float d2; }demo; 则下面叙述中错误的是 A)变量 demo 与 成员 d2 所占的内存字节数相同 C)变量 demo 和各成员的地址相同 (48)有以下程序 #include main() { int a=1,b=2,c=3,x; x=(a^b)&c; printf("%d\n",x); } 程序的 运行结果是 A)0 B)1 C)2 D)3 (49)读取二进制文件的函数调用形式为:fread(buffer ,size,coun
2007C程序设计期末试卷(A)

6 ;
for(i=0;i<N;i++) if (score[i]>=ave) { count++;
7 ;
}
printf("平均成绩=%.2f,高于平均分人数=%d\n",ave,count); fclose(fp); }
3.程序功能:假设a 数组中数已经由小到大顺序存放,以下程序把a 数组中相同的数删除得只剩一个,然后以每行3个数的形式输出a 数组的数。
【程序】
#include<stdio.h> #define N 12 void main()
{ int a[N]={3,3,4,4,4,6,9,9,23,23,90,90}; int i,j,n; n=N; i=N-1;
while( i>=0 ) { if (a[i]==a[i-1]) { for(j=i;j<n;j++)
8 ; 9 ;
} i-- ;
}
for(i=0;i<n;i++) { printf("%4d",a[i]); 10 ; } }
试题五、编程序 (共30分)
1.输入x ,按下式计算y 值并输出。
8
08
09
310
26
><≤≤⎪⎩⎪⎨⎧--++=x x x x x x x y 或
2.输出所有的“水仙花数”,水仙花数是指一个三位数,其各位数字立方和等于其本身。
如:153=13+53+33
3.输入一个正整数n ,计算1+1/2!+1/3!……1/n !的和并输出。
要求将计算阶乘的运算定义成函数。
《C语言程序设计》知识点总结

C语言最重要的知识点总体上必须清楚的:1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。
2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是它的地址.4)bit是位是指为0 或者1。
byte是指字节, 一个字节 = 八个位.概念常考到的:1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。
3、每个C语言程序中main函数是有且只有一个。
4、在函数中不可以再定义函数。
5、算法:可以没有输入,但是一定要有输出。
6、for循环中for语句写成 for(i=0; i<100; i++); ,这个写法是有问题的,for的后面如果出现分号,相当于for循环体是空的。
7、break可用于循环结构和switch语句。
8、逗号运算符的级别最低,赋值的级别倒数第二。
第一章C语言的基础知识第一节、对C语言的基础认识1、C语言编写的程序称为源程序,又称为编译单位。
2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。
3、一个C语言程序有且只有一个main函数,是程序运行的起点。
第二节、熟悉vc++1、VC是软件,用来运行写的C语言程序。
2、每个C语言程序写完后,都是先编译,后链接,最后运行。
(.c---→.obj---→.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。
第三节、标识符1、标识符合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了2、标识符分为关键字、保留标识符、用户标识符。
关键字:不可以作为用户标识符号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(勤奋、求是、创新、奉献)
2007~2008学年第一学期考查试卷
主考教师:王明衍
学院_________________ 班级__________ 姓名__________ 学号___________
《程序设计基础(C)》课程试卷A
(本卷考试时间90 分钟)
一、选择题(本题共7小题,每小题2分,共14分)
1.在一个C语言程序中
A) main函数必须出现在所有函数之前
B) main函数可以在任何地方出现
C) main函数必须出现在所有函数之后
D) main函数必须出现在固定位置
2.下列关于C语言用户标识符的叙述中正确的是
A) 用户标识符中可以出现下划线和中划线(减号)
B) 用户标识符中不可以出现中划线,但可以出现下划线
C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
3.下列关于单目运算符++、--的叙述中正确的是
A) 它们的运算对象可以是任何变量和常量
B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D) 它们的运算对象可以是char型变量、int型变量和float型变量
.4. 以下能正确定义数组并正确赋初值的语句是
A) int N=5,b[N][N];
B) int a[1][2]={{1},{3}};
C) int c[2][]={{1,2},{3,4}};
D) int d[3][2]={{1,2},{3,4}};
5. 有以下程序段
int m=0,n=0; char c='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:10A10<回车>,则输出结果是:
A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,0
6. 变量的指针,其含义是指该变量的____________。
A.值
B.地址
C.名
D.一个标志
7. 要存放35个学生的学号、姓名、成绩。
在如下的定义中,不正确的是________。
A.struct student
B. struct student stu[35]
{int sno; {int sno;
char name[20]; char name[20];
float score;} stu[35]; float score;};
C. struct
D. struct student
{int sno; {int sno;
char name[20]; char name[20];
float score;} stu[35]; float score};
struct student stu[35];
二、填空题(本题共8小题,每小题2分,共16分)
1. 若有以下定义,则计算表达式y+=y-=m*=y后的y值是______
int m=5,y=2;
2. 在C语言中的实型变量分为两种类型,它们是______和______
3. 结构化程序设计规定的三种基本结构是______结构,______结构和______结构。
4. 设有程序段
int s=0;i=0;
do
{ s=s+i;
i++;
}while(i<=100);
则do…while的循环体被执行_________次,s=__________。
5. C语言提供的三种逻辑运算符是____________、____________和____________。
6. 在执行if语句时,先对表达式求解,其值为_______,按“假”处理,若表达式的值为_______,
按“真”处理,执行指定的语句。
7. .以下程序运行后的输出结果是
int a=5;
fun(int b)
{ static int a=10;
a+=b++;
printf("%d ",a);
}
main()
{ int c=20;
fun(c);
a+=c++;
printf("%d\n",a);
}
8. *p最终值是( )
static int a[][4]={1,2,3,4,5,6,7,8};
int *p;
p=a;p+=3;
三、按要求写出判断表达式:(本题共3小题,每小题3分,共9分)
1. 写出1<y<5或y>20的表达式
2. 写出x与y都是负数并且x>y的表达式.
3. 变量ch的值是大写的英文字母。
四.计算表达式(本题共3小题,每小题3分,共9分)
1.若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是______
2. 当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后,n的值为______,m的值为______
3. 若a=2, b=3, x=3.5, y=2.5; 则表达式x+a%3*(int)(x+y)%2/4值是_____________。
五、读程序写出程序结果(本题共5小题,每小题3分,共15分)
1. 以下程序的输出结果为______
#include <stdio.h>
main()
{int a=325; double x=3.1415926;
printf("a=%+06d x=%+e\n",a,x);
}
2.若a,b均为整型变量,则以下语句实现的功能是_______
a+=b; b=a-b; a-=b;
3.
main( )
{
int i=3,j=2
char *a="DCBA";
printf("%c%c\n",*(a+i),*(a+j)); 输出结果:
}
4.
main()
{ int a[]={1,3,5,7,9,10,11},*p;
p=a+1;
printf(“%d\n”,*(p+3)*a[2]); 输出结果
}
5.以下程序的输出结果是________
#include "stdio.h"
main()
{int a,s,n,count;
a=2;s=0;n=1;count=1;
while(count<=7) {n=n*a;s=s+n;++count;}
printf("s=%d",s);
}
六、编写程序(本题共5小题,第1,2题,每题6分,第3题5分,第4,5题,每题10
分共37分)
1. 某百货公司为了促销,采用购物打折的办法。
(1)在1000元以上者,按九五折优惠;
(2)在2000元以上者,按九折优惠;
(3)在3000元以上者,按八五折优惠;
(4)在5000元以上者,按八折优惠。
编写程序,输入购物款数,计算并输出优惠价。
(要求用switch语句编写)
2. 使用do-while语句求1至1000之间满足"用3除余2,用5除余3,用7除余2"的数,且一行只显
示5个结果
3.计算下面多项式的前100项的和并输出结果。
S=1-1/2+1/3-1/4+……
4. 输入一个3*5的整型矩阵,输出其中的最大值最小值和它们的下标。
5 编写函数判断一个数n是否是素数(如果是素数,返回为1;否则返回0),
调用该函数,验证6~100之间的每一个偶数都可以表示为两个素数之和。