第一篇:E语言程序设计基础
总第3课时备课
第 3课时
课题:E语言程序设计基础
教学内容:青岛版八年级下册信息技术第 13页至第 17 页
一、教学分析
【教学内容分】 本课是在第1课学习用E语言程序解决高斯问题的基础上,继续学习用E
语言的基础知识,包括数据类型、常量、变量等以及赋值的方法。
【教学对象分析】学生对程序运行的结果或者说是对程序能够解决的问题比较感兴趣,但对
设计程序所要设计的组件,编写代码比较陌生,无从下手,还没有形成一个编写程序的思想。
【教学目标】
知识和技能目标:了解E语言的基础知识,包括基本数据类型、常量、变量、运算符、命
令等;能够正确定义常量和变量及其数据类型;掌握赋值、输入、输出的方法;熟悉程序设计中的运算符与数学运算符号的区别
过程与方法目标: 通过学生的自主探究,组内交流及教师的耐心指导完成任务情感态度与价值观目标:了解E语言的基础知识,熟悉E语言编程代码的输入以及数据类
型的定义与使用,尝试通过设计小程序来解决问题,培养学习E语言的兴趣和信心。
【教学重点】 定义常量和变量及其数据类型;赋值、输入、输出的方法。
【教学难点】 正确定义常量和变量及其数据类型;赋值、输入、输出的方法;熟悉程序设计
中的运算符与数学运算符号的区别
【教学方法】 自主探究、合作交流
【教学资源】
硬件资源:计算机、电子教室软件资源:E语言 软件
【评价方法】
评价量规:优秀、良好、一般评价方式: 自我评价与小组评价
二、教学过程
教学进程
教师活动
学生活动
设计意图
修订
复习导入: 回顾上节课所学知识并回答 巩固所学知识让学生回顾解决高斯问有利于本课的学
导入新课 题的大体步骤习
引入:使用E语言编程解决1+2等于几 探究任务一:启动E语同学们参照课本完成组件的锻炼学生的动手
探究任务言,并在程序窗体中设计设计并思考 操作能力,并培养一如需组件: 学生在操作中思
考方法 要求:想一想能不能不用
让同学们在掌握组内交流 课本中给的方法,你有其学生思考并交流是否可行
方法的基础上勇 他方法吗 于探索 完成任务让学生脱离课本进行操
加深记忆
一 作
学生观察并识记
探究任务定义变量、并了解全局变学生参照课本正确定义所需
二量和局部变量以及常量的区别 变量
检查任务有的同学不会输入变量
二的完成行,或者是不能删除多余
情况的行 探究任务
编写代码并运行程序 学生自主完成发挥学生的主观三
能动性
并检查完成情况
要求同学们在有限的时
巩固本课知识 限进作业 间内完成课本第17页实同学们认真完成并让学生进行知 践与创新部分
识的迁移
发挥学生的主观师生评价 先让组内进行交流评价 同学们观察,并进行评价发表能力性,让学生参
老师随机抽取每个组内自己的观点或建议 与评价,激发学生
一个作品进行演示 的兴趣
巩固本课的知识归纳总结 师让生归纳,师进行补充学生归纳
要点
或强调
第二篇:c语言程序设计基础
《c语言程序设计基础》重修试卷
一、选择题(2’*20=40’)
1、c程序由构成。
A.函数B.命令C.程序D.表达式
2、以下选项中合法的变量名是
A.#y2B.a A.floatB.charC.intD.double4、在我们使用的turboC中,一个int型数据在内存中占个字节 A.0B.1C.2D.45、若有定义:int a=8,b=5,c;执行语句c=ab+0.4后c= A.1.4B.1C.2.0D.26、在c语言中,char型数据在内存中的存储形式是 A.补码B.ASSCIIC.原码D.反码 7、若运行时给变量x输入 程序设计基础课程设计报告 课程名称: 课程设计题目: 程序设计基础课程设计 学生信息管理系统 姓 名: 系: 专 业: 年 级: 学 号: 指导教师: 职 称: 计算机科学技术系 计算机网络技术 讲师 2012年1月1日 一、设计题目及要求。 1、题目:学生信息管理系统 2、要求: 1)建立学生信息的结构体 2)学生信息的初始化(可以从文件获取)3)学生信息的添加、修改、查找 4)学生信息的输出 5)对学生信息按学号排序 6)计算一门课的平均分和总分 7)将学生信息保存为文件 二、设计算法设计分析。 1、主要功能模块:添加模块、查找模块、修改模块、排序模块 添加模块: (1)从键盘中输入添加学生的人数n.(2)从键盘中输入学生的学号和各科成绩,分别存入一维数组sum和二维数组score中。 (3)计算各科的总分和平均分,分别存入一维数组sum和aver中。 (4)判断各个学生的三科成绩是否都大于90,如果是则输出“Y”,表示该生能获得奖学金,否则输出“N”表示该生不能获得奖学金。 添加模块结果图 查找模块 (1)从键盘中输入要查找的学生的学号k..(2)编写程序使num[i]与k一一对比,直到num[i]==k,输出该生的学号及相应成绩。 查找模块结果图 修改模块: (1)从键盘中输入要修改的学生的学号x..(2)编写程序使num[i]==x,输出该生的成绩,选择你要修改的科目并输入你修改后的新分数,重新计算该生的总分和平均分。 (3)重新判断该生的三门课成绩是否都大于 90,如果是则输出“Y”,表示该生能获得奖学金,否则输出“N”表示该生不能获得奖学金。 修改模块的结果图 三、程序编码实现。源代码与执行结果2部分 /*函数功能:添加一个或几个学生的成绩,查找某个学生的成绩,修改某个学生的成绩 函数参数:长整型数组num,存储每个学生的学号 整型数组score,存储每个学生的成绩 整型数组sum,存储每个学生的总分 实型数组aver,存储每个学生的平均分 字符型数组c,标志每个学生能否获得奖学金 整型数n,存储学生总数 函数返回值:无 */ void Find(long num[],int score[][3],int sum[],float aver[],char c[],int n){ long x,t,k;int i,j; printf(“请选择您要实现的功能:1-添加,2-查找,3-修改n”);scanf(“%ld”,&t);if(t==1){ printf(“请输入你要添加的人数:”);scanf(“%d”,&A);printf(“Enter No and Score as: MT EN PHn”);for(i=n;i printf(“学号t数学t英语t物理t总分t平均成绩t>90n”); printf(“%4ldt”,num[i]); for(j=0;j<3;j++){ printf(“%4dt”,score[i][j]);} printf(“%5dt%6.1ftt%cn”,sum[i],aver[i],c[i]);} } } if(t==3){ printf(“请输入学号:”);scanf(“%ld”,&x);for(i=0;i printf(“请输入你要修改的选项所对应的数字:0-MT,1-EN,2-PHn”); scanf(“%d”,&j); printf(“你将修改为:”); scanf(“%d”,&score[i][j]); sum[i]=0; for(j=0;j<3;j++) { sum[i]=sum[i]+score[i][j]; } aver[i]=(float)sum[i]/3; if((score[i][0]>=90)&&(score[i][1]>=90)&&(score[i][2]>=90)) { c[i]='Y'; } else { c[i]='N'; } } } } } /*函数功能:按学号对学生排序 函数参数:长整型数组num,存储每个学生的学号 整型数组score,存储每个学生的成绩 整型数组sum,存储每个学生的总分 实型数组aver,存储每个学生的平均分 字符型数组c,标志每个学生能否获得奖学金 整型数n,存储学生总数 函数返回值:无 */ void order(long num[],int score[][3],int sum[],float aver[],char c[],int n){ int i,j,t,x;long k;float g;char h;for(i=0;i x=score[i][j]; score[i][j]=score[t][j]; score[t][j]=x;} } } 执行结果(1): (2) 四、程序调试过程中出现的问题: 开始运用添加功能时,虽然添加了,但在输出结果中不显示。 解决办法:将最后的输出中的i 五、总结 在课程设计的这段日子里,我真正体会到什么叫失败是成功之母,因为在编写程序时会出现这样或那样的错误,有的是语法错误,有的是逻辑错误,还有的是由于自己粗心漏掉或多加了一些符号等等,但只要你能静下心来慢慢寻找原因,慢慢修改,最后终能成功。但如果你在编程时格外细心,你将会减少许多麻烦,同时也会节省很多时间。 分类: 一、概念(13---51,54,55)、数据类型、输入输出格式、转义符、运算及表达式等:1---66 二、选择语句:67---72(其中67为条件运算,72可归于一类); 三、循环语句:73---102(其中78为输出格式可归于一类) 四、数组:103---133(其中123 – 125为与数组相关的函数调用) 五、函数调用:134---156 六、文件:157 – 183 七、指针:184---195 八、结构体:196---207(204.205,206为函数调用) 1、在C语言中,最基本的数据类型包括 (A)整型、实型、字符型(B)整型、实型、逻辑型(C)整型、字符型、逻辑型(D)实型、字符型、逻辑型 2 C语言中整常数的书写形式不能使用的数制形式是(A)十进制(B)十六进制(C)八进制(D)二进制 3 字符串常量“abncde125”包含字符的个数是(A)8(B)12(C)9(D)13 4 C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(A)必须为下划线(B)可以是这三种字符中的任一种(C)必须为字母或下划线(D)必须为字母 5 下列是用户自定义标识符的是(A)#x(B)_x(C)2x(D)int 6 在C语言中,下列常数不能作为常量的是(A)0xA3(B)068(C)5.6E-3(D)2e5 7 在C语言中,运算对象必须是整型的运算符是(A)%(B)>=(C)&&(D)= 8 下列表达式与x =(y++)等价的是(A)x = ++y(B)x = x + 1, y = x(C)x = y, y = y + 1(D)x += y + 1 9 若定义int x = 17;,则表达式x++ * 1 / 6的值是(A)1(B)2(C)3(D)4 10 如果在一个C语言表达式中有多个运算符,则运算时应该(A)只考虑优先级(B)只考虑结合性(C)先考虑优先级,然后考虑结合性(D)先考虑结合性,然后考虑优先级 11在C程序中,下面叙述不正确的是 (A)x和X 是两个不同的变量(B)从键盘输入数据时,对整型变量只能输入整型数据,对于实型变量只能输入实型数据(C)逗号运算符的优先级最低(D)若x、y类型相同,则执行语句y = x,后,将把x的值放入y中,而x的值不变 12 已知字符A的ASCII值为65,若定义int i;,则执行语句i = 'A' + 3.5;后,正确的叙述是(A)i的值是字符E(B)语句不合法 (C)i的值是字符A的ASCII值加上3,即68(D)i的值是字符A的ASCII值加上3.5,即68.5 13 C语言是计算机高级语言,它适合作为系统描述语言,它 (A)不以用来编写系统软件,可以用来编写应用软件(B)不以用来编写系统软件,不可以用来编写应用软件 (C)可以用来编写系统软件,不可以用来编写应用软件(D)可以用来编写系统软件,也可以用来编写应用软件 14 在纸上写好一个C语言程序后,上机运行的基本步骤为 (A)编辑、连接、编译、运行(B)编译、连接、编辑、运行(C)编译、编辑、连接、运行(D)编辑、编译、连接、运行 15 用C语言等高级语言编写的程序称为(A)可执行程序(B)编译程序(C)目标程序(D)源程序 16 一个C语言源程序经过“编译程序”翻译后生成一个二进制代码文件,它的扩展名为(A).dat(B).exe(C).c(D).obj 17 通过“连接程序”软件,把C语言目标程序与C语言提供的各种库函数连接起来生成一个文件,它的扩展名为(A).exe(B).dat(C).obj(D).c 18 下面叙述中正确的是 (A)在C语言程序中,要调用的函数必须在main()函数中定义(B)C语言程序总是从main()函数开始执行 (C)C语言程序总是从第一个函数开始执行(D)在C语言程序中,main()函数必须放在程序的开始位置 19 在一个C语言源程序中,main()函数的位置(A)必须在其他所有的函数之后(B)可以在任意位置(C)必须在其他所有的函数之前(D)必须在固定位置 20 一个C语言程序由 (A)若干个过程组成(B)若干个子程序组成(C)一个主程序和若干个子程序构成(D)一个主函数和若干个子函数构成 21一个函数的组成有 (A)函数的声明部分和执行部分(B)函数名、函数类型、函数参数名、函数参数类型(C)主函数和子函数(D)函数首部和函数体 22 下面叙述不正确的是 (A)在程序中任意合适的地方都可以加上注释以便阅读(B)C语言中的每条执行语句都需要用分号结束 (C)include命令所在行后面需要加分号(D)C语言具有高级语言的功能,也具有低级语言的一些功能 23 下面叙述正确的是 (A)在C程序中,main()函数的位置必须在其他所有的函数之前(B)C语言自身没有输入输出语句 (C)在C程序的编译过程中可以发现注释中的拼写错误(D)C程序的每一行只能写一条语句 24 在C语言中,用来表示“取地址”的符号是(A)$(B)#(C)@(D)& 25 在C语言中,用于结构化程序设计的三种基本结构是(A)顺序结构、选择结构、转移结构(B)顺序结构、条件结构、循环结构(C)顺序结构、选择结构、重复结构(D)顺序结构、选择结构、循环结构 26 一个算法应具有“确定性”等5个特性,则对另外4个特性描述错误的是(A)有效性(B)有穷性(C)有零个或多个输入(D)有零个或多个输出 27 程序设计一般可以简化为以下4个步骤,其中首先应该完成的是(A)调试并运行程序(B)编写程序(C)建立数学模型(D)设计数据结构和算法 28 以下不正确的C语言标识符是(A)ab.c(B)a_bc(C)abc(D)ABC 29 以下正确的C语言标识符是(A)a+b(B)test!(C)_123(D)%x 30 编辑程序的功能是 (A)命令计算机执行指定的操作(C)将C源程序编译成目标程序 (B)调试程序 (D)建立并修改程序 31 C语言程序的基本单位是(A)过程(B)函数(C)子程序(D)标识符 32 下列说法中错误的是 (A)主函数可以分为两部分:主函数首部和主函数体(B)主函数可以调用任何非主函数的其它函数 (C)任何非主函数可以调用其它任何非主函数(D)程序可以从任何非主函数开始执行 33 在下列数据中属于“字符串常量”的是(A)ABC(B)“ABC”(C)'abc'(D)'a' 34 在C语言中,字符'n'在内存占用的字节数是(A)1(B)2(C)3(D)4 35 字符串“ABC”在内存占用的字节数是(A)3(B)4(C)6(D)8 ·试题讲评 编译字符串“ABC”时,编译器会自动加上字符串结束标志' ',因此字符串“ABC”占用的内存为4个字节。36 在C语言中,合法的长整型常数是(A)0L(B)4321(C)0.07654321(D)2.3456e10 ·试题讲评 4321在C语言中默认为是int型数据,数据后加L或l表示该数的类型为长整型。37 char型常量在内存中存放的是(A)ASCII值(B)BCD码值 (C)内码值(D)十进制代码值 38 设m, n, a, b, c, d均为0,执行(m = a == b)||(n = c == d)后,m,n的值是(A)0,0(B)0,1(C)1,0(D)1,1 ·试题讲评 (1)在C语言中,“||”表示逻辑或,“&&”表示逻辑与。 (2)对于“m =(表达式a)||(表达式b)”,若“表达式a”为真或“表达式b”为真,则m为真。特别指出,若“表达式a”为真,则m的值肯定为真(无论“表达式b”的结果是否为真),在C语言中,为提高运算速度,此时就不再去执行“表达式b”。 (3)对于“m =(表达式a)&&(表达式b)”,若“表达式a”为假或“表达式b”为假,则m为假。特别指出,若“表达式a”为假,则m的值肯定为假(无论“表达式b”的结果如何),在C语言中,为提高运算速度,此时就不再去执行“表达式b”。 (4)在本题的表达式中,从左至右,先计算“(m = a == b)”,在此表达式中,先计算“a == b”,由于a,b的值均为0,因此“a == b”的结果是真(即1)。再将“a == b”的运算结果(即1)赋值给m,则m的值为1,因此“(m = a == b)”的结果为1,即真,按前述规则,不再对表达式“(n = c == d)”进行计算,因此结果为选项C。39 设a为5,执行下列语句后,b的值不为2的是(A)b = a / 2(B)b = 6c的值的类型是(A)float(B)int(C)char(D)double 43 在以下一组运算符中,优先级最高的运算符是(A)<=(B)=(C)%(D)&& 44 下列叙述中正确的是 (A)C程序中的所有字母都必须小写(B)C程序中的关键字必须小写,其他标识符不区分大小写 (C)C语言中的所有字母都不区分大小写(D)C语言中的所有关键字必须小写 45 下面不属于C语言关键字的是(A)integer(B)typedef(C)enum(D)union 46 以下叙述不正确的是 (A)分号是C语句的必要组成部分(B)C程序的注释可以写在语句的后面(C)函数是C程序的基本单位(D)主函数的名字是mian 47 下列能正确表示a≥10或a≤0的C语言关系表达式是(A)a>= 10 or a <= 0(B)a >= 10 | a <= 0(C)a>= 10 || a <= 0(D)a >= 10 && a <= 0 48 下列只有当整数x为奇数时,才是逻辑“真”的表达式是(A)x % 2 == 0(B)!(x % 2 == 0)(C)!(x % 2)(D)(x'0';printf(“%ld#”, number);ch= getchar();}(A)2#18#(B)2402#18#(C)22#1818#(D)# 103 在C语言中,数组名代表的是(A)数组中全部元素的个数(B)数组中第一个元素的值(C)数组中全部元素的值(D)数组的首地址 104 下面叙述中错误的是 (A)同一个数组中的每一个元素都属于同一个数据类型(B)对于实型数组,不可以直接用数组名对数组进行整体的输入或输出 (C)数组名代表数组所占存储区的首地址,其值不可以改变(D)在程序运行时,如果数组元素的下标超出了所定义的下标范围,系统将给出“下标越界”的出错信息 105 如果有语句:int x[3][2];,则下面能正确引用数组元素的选项是(A)x[0][2](B)x[1][2](C)x[2][1](D)x[2][2] 106 如果有语句:int x;char y[6];,则下面正确的输入语句是(A)scanf(“%d%s”, x, y);(B)scanf(“%d%s”, &x, y);(C)scanf(“%d%s”, x, &y);(D)scanf(“%d%s”, &x, &y);107 下面能正确定义一维数组的选项是(A)int num[];(B)int num[0...50];(C)int N = 50, num[N];(D)#define N 50 int num[N];·试题讲评 数组长度不能为变量。108 下面不能正确定义二维数组的选项是(A)int a[2][] = {{1, 2}, {3, 4}};(B)int a[][2] = {1, 2, 3, 4};(C)int a[2][2] = {{1}, {2}};(D)int a[2][2] = {{1}, 2, 3};109 如果有定义:int a[2][2] = {0, 1, 2, 3};,则a数组的各个元素分别为 (A)a[0][0]=0, a[0][1]=1, a[1][0]=2, a[1][1]=3(B)a[0][0]=0, a[0][1]=2, a[1][0]=1, a[1][1]=3(C)a[0][0]=3, a[0][1]=2, a[1][0]=1, a[1][1]=0(D)a[0][0]=3, a[0][1]=1, a[1][0]=2, a[1][1]=0 110 下面能正确定义一维数组的选项是 (A)int a1[] = “string”;(B)int a2[5] = {1, 2, 3, 4, 5, 6};(C)char a3 = {“string”};(D)char a4[] = {1, 2, 3, 4, 5, 6};111 如果有语句:char a[] = “string”, b[] = {'s', 't', 'r', 'i', 'n', 'g'};,则下面叙述中正确的是(A)数组a的长度大于数组b的长度(B)数组a的长度等于数组b的长度(C)数组a的长度小于数组b的长度(D)数组a和数组b二者等价 112 若定义str1、str2、str3为字符串,则语句strcat(strcpy(str1, str2), str3);的功能是 (A)把字符串str1连接到字符串str2中再把字符串str2复制到字符串str3之后(B)把字符串str1复制到字符串str2中再把字符串str2连接到字符串str3之后 (C)把字符串str2连接到字符串str1之后再把字符串str3复制到字符串str1中(D)把字符串str2复制到字符串str1中再把字符串str3连接到字符串str1之后 113 下面叙述中错误的是 (A)对于实型数组,不可以直接用数组名对数组进行整体的输入或输出(B)对于字符型数组,可以直接用数组名对数组进行整体输入或输出 (C)对于字符型数组,可以用来存放字符串(D)对于字符型数组,可以在赋值语句中运用运算符“=”进行整体赋值 114 若有以下语句,各选项中数值为4的表达式是 int a[12] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};char c = 'a', d, g;(A)a[g-c](B)a[4](C)a['d'c] 115 假设int型变量占4个字节的存储单元,对于如下定义,数组x在内存中所占字节数为 int x[10] = {0, 2, 4};(A)4(B)12(C)20(D)40 116 以下程序段的输出结果是 int j;int x[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; for(j=0;j<3;j++){ printf(“%d ”, x[j][2-j]);}(A)3 5 7(B)3 6 9(C)1 5 9(D)1 4 7 117 以下程序段运行后的输出结果是 int n[3], t, j, k; for(t=0;t<3;t++){ n[t] = 0;} k = 2;for(t=0;t { n[j] = n[t] + 1; } } printf(“%dn”, n[1]);(A)0(B)1(C)2(D)3 118 以下程序段运行后的输出结果是 int p[7] = {11, 13, 14, 15, 16, 17, 18}, i=0, k=0; while(i<7 && p[i]%2){ k = k + p[i];i++;} printf(“%dn”, k);(A)58(B)56(C)45(D)24 119 以下程序段运行后的输出结果是 int m[][3] = {1, 4, 7, 2, 5, 8, 3, 6 ,9};int i, k=2; for(i=0;i<3;i++){ printf(“%d ”, m[k][i]);}(A)3 6 9(B)4 5 6(C)2 5 8(D)7 8 9 120 下列选项中正确的语句是 (A)char *s;s = “Beijing”;(B)char *s;s = {“Beijing”};(C)char s[8];s = “Beijing”;(D)char s[8];s = {“Beijing”};121 以下代码段执行后,b中的值是:2960 int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p = &a[3], b;b = p[5];(A)5(B)6(C)8(D)9 122 以下程序段运行后的输出结果是 char a[]=“abcdefg”, b[10]=“abcdefg”; printf(“%d %dn”, sizeof(a), sizeof(b));(A)7 7(B)8 8(C)8 10(D)10 10 123 下列程序运行后的输出结果是 #include int main(void){ int a[2]={3, 5}, b[2]={3, 5}; swap1(a); swap2(b[0], b[1]);printf(“%d %d %d %dn”, a[0], a[1], b[0], b[1]);return 0;} void swap1(int c[]){ int t; t = c[0]; c[0] = c[1]; c[1] = t;} void swap2(int c0, int c1){ int t; t = c0; c0 = c1; c1 = t;}(A)5 3 3 5(B)5 3 5 3(C)3 5 3 5(D)3 5 5 3 124 下列程序运行后的输出结果是 #include int main(void){ int aa[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, i; sort(aa, 10);for(i=0;i<10;i++)printf(“%d ”, aa[i]);printf(“n”);return 0;} void sort(int a[], int n){ int i, j, t; for(i=0;i a[i] = a[j]; a[j] = t;} }(A)9 2 7 4 5 6 3 8 1 10(B)1 2 3 4 5 6 7 8 9 10(C)10 9 8 7 6 5 4 3 2 1(D)1 10 3 8 5 6 7 4 9 2 125 下列程序运行后的输出结果是 #include int main(void){ int i, aa[5] = {1, 2, 3, 4, 5}; f(aa, 0, 4);for(i=0;i<5;i++)printf(“%d,”, aa[i]);return 0;} void f(int a[], int i, int j){ int t; if(i < j) { t = a[i]; a[i] = a[j]; a[j] = t;f(a, i+1, j-1); } }(A)5,4,3,2,1,(B)1,2,3,4,5,(C)5,4,3,2,1(D)5,2,3,4,1 126 以下程序段运行后的输出结果是 char ch[3][5] = {“AAAA”, “BBB”, “CC”}; printf(“"%s”n“, ch[1]);(A)”AAAA“(B)”BBB“(C)”BBBCC“(D)”CC“ 127 以下程序段运行后的输出结果是 int b[3][3] = {0, 1, 2, 0, 1, 2, 0, 1, 2}, i, j, t=1; for(i=0;i<3;i++){ for(j=i;j<=i;j++) { t += b[i][b[j][j]]; } } printf(”%dn“, t);(A)4(B)3(C)9(D)1 128 以下程序段运行后的输出结果是 int aa[4][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {3, 9, 10, 2}, {4, 2, 9, 6}};int i, s=0; for(i=0;i<4;i++){ s += aa[i][1];} printf(”%dn“, s);(A)19(B)20(C)11(D)13 129 以下程序段的运行结果是: char s[10], s=”abcd“; printf(”%s“, s);(A)abcd(B)a(C)ab cd(D)编译不通过 130 对于定义char s[] = ”“NameAddress”n“;,字符串s所占字节数是(A)16(B)14(C)15(D)19 131 以下程序段的运行后结果是 char str[] = ”abn 12“"; printf(”%d“, strlen(str));(A)6(B)12(C)3(D)4 132 对于定义char c[8] = ”Tianjin“和int j,下面的输出函数调用中错误的是(A)printf(”%s“, c);(B)puts(c);(C)for(j=0;j<8;j++){ printf(”%c“, c[j]);}(D)for(j=0;j<8;j++){ puts(c[j]);} 133 对于定义char a[10] = {0};和int j;,下面输入函数调用中错误的是(A)scanf(”%s“, a);(B)gets(a);(C)for(j=0;j<9;j++){ scanf(”%c“, a[j]);}(D)for(j=0;j<9;j++){ scanf(”%c“, &a[j]);} 134 在C语言中,程序的基本单位是(A)函数(B)语句(C)程序段(D)文件 135 在C语言中,程序进行编译的单位是(A)语句(B)程序段(C)函数(D)文件 136 在C语言中,若定义函数时对函数类型未加显式说明,则函数的隐含类型为(A)void`(B)int(C)double(D)char 137 在C语言的函数调用中,如果普通变量作为函数的参数,则调用函数时(A)实参和形参共用一个存储单元(B)由用户确定是否共用一个存储单元(C)实参和形参分别占用一个独立的存储单元(D)由计算机系统确定是否共用一个存储单元 138 在C语言的函数调用中,如果普通变量作为函数的实参,则它与对应形参之间的传递方式是(A)由实参传递给形参,再由形参传递给实参(B)由用户指定传递方式(C)单向值传递(D)地址传递 139 在C语言的函数调用中,如果数组名作为函数的实参,则传递给形参的是(A)数组第一个元素的值(B)数组全部元素的值(C)数组全部元素的个数(D)数组的首地址 140 在C语言中规定,函数返回值的类型由(A)定义该函数时所指定的函数类型决定(B)return语句中的表达式类型决定(C)调用该函数的主调函数决定(D)调用该函数时系统临时决定 141 函数调用在程序中出现的位置一般有3种方式,下面叙述中错误的是 (A)函数调用可以出现在表达式中(B)函数调用可以作为独立的语句存在(C)函数调用可以作为一个函数的实参(D)函数调用可以作为一个函数的形参 142 在C语言中,下面关于函数正确的叙述是(A)函数可以嵌套定义,也可以嵌套调用(B)函数可以嵌套定义,但不可以嵌套调用(C)函数不可以嵌套定义,但可以嵌套调用(D)函数不可以嵌套定义,也不可以嵌套调用 143 在C语言中,函数调用语句function((a, b, c),(d, e));中参数的个数是(A)1(B)2(C)4(D)5 ·试题讲评 (a, b, c)和(d, e)分别都是逗号表达式 144 在函数调用中,若funA调用了函数funB,函数funB又调用了函数funA,则(A)C语言中不允许这样的递归调用(B)称为函数的直接递归调用(C)称为函数的间接递归调用(D)称为函数的循环调用 145 下面叙述中不正确的是 (A)函数中的形参是函数自己的局部变量(B)在不同的函数中可以使用相同名字的变量,它们在内存中占用不同的单元 (C)在一个函数中定义的变量只在本函数范围内有效(D)在一个函数内的复合语句中定义的变量只在本函数范围内有效 ·试题讲评 在一个函数内的复合语句中定义的变量只在本复合语句范围内有效 146 在一个源程序文件中定义的全局变量的作用域为 (A)从定义该变量的位置开始至本文件结束(B)本程序的全部范围(C)本文件的全部范围(D)本函数的全部范围 147 下面叙述中不正确的是(A)函数可以没有形参,可是函数名后的一对括号却不能省略(B)在C语言中,不能在一个函数的内部再定义函数 (C)在没有声明函数返回值类型时,函数返回值的类型默认为int(D)函数的类型可以是整型、实型、字符型,但不可以是指针型 148 下面程序的输出结果是 #include int main(void){ int x=5, y=3, s; s = function(x, y); printf(”%dn“, s);return 0;} int function(int a, int b){ return a*a-b*b;}(A)2(B)8(C)16(D)32 149 下面程序的输出结果是 #include int main(void){ printf(”%ldn“, func(5));return 0;} long func(int n){ if(n > 2){ return func(n-1)+ func(n-2);} else { return 1;} }(A)5(B)6(C)7(D)8 150 下面程序的输出结果是 #include int main(void){ int a=27, b=15, c; c = zdgys(a, b); printf(”%dn“, c);return 0;} int zdgys(int x, int y){ int w; while(y) { w = x % y; x = y; y = w; } return x;}(A)2(B)3(C)4(D)5 151 下面程序的输出结果是 #include int main(void){ double x;int a=3, b=4, c=5; x = func(a, b, c); printf(”%fn“, x);return 0;} double func(int x, int y, int z){ double t; t = x % y * z;return t;}(A)3(B)3.000000(C)15(D)15.000000 152 下面程序的输出结果是 #include int main(void){ int i, s; for(i = 0;i < 4;i++)s = func();printf(”%dn“, s);return 0;} int func(void){ static int x = 6;x++;return x;}(A)7(B)8(C)9(D)10 153 下面程序中应该补充(填写在横线位置)的代码是 #include //函数功能:求两数中的较大数 int main(void){ int a, b, c; scanf(”%d, %d“, &a, &b); c = __________________;printf(”max is %d“, c);return 0;} int max(int x, int y){ int z; if(x > y)z = x;else z = y;return z;}(A)max(a, b)(B)max(&a, &b);(C)max(x, y)(D)int max(int a, int b)154 下面程序中应该补充(填写在横线位置)的代码中,有错的是 #include int main(void){ int a, b, c; scanf(”%d, %d“, &a, &b);c = min(a, b);printf(”min is %d“, c);return 0;} //函数功能:求两数中的较大数 int min(int x, int y){ int z; z = x int x1=30, x2=40;void sub(int x, int y); int main(void){ int x3=10, x4=20; sub(x3, x4); sub(x2, x1);printf(”%d,%d,%d,%dn“, x3, x4, x1, x2);return 0;} void sub(int x, int y){ x1 = x; x = y; y = x1;}(A)10,20,40,40(B)20,10,40,30(C)20,10,40,40(D)10,20,30,40 156 下面程序的输出结果是 #include int main(void){ increment(); increment(); increment();return 0;} void increment(void){ int x = 0; x += 1;printf(”%d “, x);}(A)1 1 1(B)1 2 3(C)1(D)3 3 3 157 在C语言中,下面关于文件的存取方式正确的叙述是(A)只能从文件的开头存取(B)可以顺序存取,但不可以随机存取 (C)不可以顺序存取,但可以随机存取(D)可以顺序存取,也可以随机存取 158 下列关于C语言数据文件的叙述中正确的是 (A)文件由ASCII码字符序列组成,C语言只能读写文本文件(B)文件由二进制数据序列组成,C语言只能读写二进制文件 (C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件(D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 159 在C语言中,读写操作时需要进行转换的文件是(A)二进制文件(B)文本文件 (C)二进制文件和文本文件都需要转换(D)二进制文件和文本文件都不需要转换 160 在C语言中,下面关于文件操作正确的叙述是 (A)对文件操作时,必须先检查文件是否存在,然后再打开文件(B)对文件操作时需要先打开文件 (C)对文件操作时需要先关闭文件(D)对文件操作时打开和关闭文件的顺序没有要求 161 为了进行写操作而打开二进制文件wr.dat的正确写法是(A)fp = fopen(”wr.dat“, ”r“);(B)fp = fopen(”wr.dat“, ”w“);(C)fp = fopen(”wr.dat“, ”rb“);(D)fp = fopen(”wr.dat“, ”wb“);162 下面的语句中,将fp定义为文件型指针的是(A)file fp;(B)file *fp;(C)FILE fp;(D)FILE *fp;163 以下要作为fopen函数中第一个参数的正确格式是(A)”c:usertext.txt“(B)”c:usertext.txt“(C)”usertext.txt“(D)”c:user ext.txt“ ·试题讲评 字符常量反斜线()的书写形式是''(转义符方式)164 若执行fopen函数时发生错误,则函数的返回值是(A)0(NULL)(B)1(C)-1(EOF)(D)地址值 165 当顺利执行了文件关闭操作时,fclose函数的返回值是(A)-1(B)1(C)TRUE(D)0 166 如果不能实现文件“打开”的任务,fopen函数将会带回一个出错信息。以下对出错原因描述错误的是 (A)用”r“方式打开一个并不存在的文件(B)磁盘出故障 (C)磁盘已满无法建立新文件(D)用”w“方式打开文件时,没有先建立文件 167 在C语言中,标准库函数fread(buf, size, count, fp)中参数buf的含义是 (A)一个指针,指向要读入数据的存放地址(B)一个文件指针,指向要读的文件(C)一个整型变量,代表要读入的数据总数(D)一个存储区,存放要读的数据项 ·试题讲评 size:要读写的字节数;count:要读写多少个数据项(每个数据项的长度为size)。168 在C语言中,标准库函数fwrite(buf, size, count, fp)的功能是 (A)从buf所指向的文件中读取长度为size的count个数据项存入fp起始的内存(B)从fp所指向的文件中读取长度为size的count个数据项存入buf起始的内存 (C)把buf起始的内存中长度为size的count个数据项输出到fp所指向的文件中(D)把fp起始的内存中长度为size的count个数据项输出到buf所指向的文件中 169 下面程序的功能是 #include FILE *fp1, *fp2; fp1 = fopen(”c:xxxfile.c“, ”r“);if(NULL == fp1) { printf(”cannot open file in disk c!n“); exit(1); } fp2 = fopen(”d:file.c“, ”w“);if(NULL == fp2) { printf(”cannot open file in disk d!n“); fclose(fp1);exit(2); } while(!feof(fp1))fputc(fgetc(fp1), fp2);printf(”copy success!n“); fclose(fp1); fclose(fp2);return 0;}(A)将c盘xxx子目录下file.c文件复制到d盘xxx子目录下file.c文件中(B)将d盘xxx子目录下file.c文件复制到c盘xxx子目录下file.c文件中 (C)将c盘根目录下file.c文件复制到d盘xxx子目录下file.c文件中(D)将c盘xxx子目录下file.c文件复制到d盘根目录下file.c文件中 170 当已存在一个abc.txt文件时,执行函数fopen(”abc.txt“, ”r+“)的功能是 (A)打开abc.txt文件,清除原有的内容(B)打开abc.txt文件,只能写入新的内容 (C)打开abc.txt文件,只能读取原有内容(D)打开abc.txt文件,可以读取和写入新的内容 171 fopen(filename, mode)函数的mode取值”r“和”w“时,它们之间的差别是 (A)”r“可向文件输入,”w“不可向文件输入(B)”r“不可向文件输入,”w“可向文件输入(C)”r“不可由文件输出,”w“可由文件输出(D)文件不存在时,”r“建立新文件,”w“出错 172 若用fopen函数打开一个新的二进制文件,该文件可以读也可以写,则文件打开模式是(A)”ab+“(B)”wb+“(C)”rb+“(D)”ab“ ·试题讲评 ”rb+“:为了读和写,打开一个二进制文件,若指定文件不存在则出错;”wb+“:为了读和写,打开一个新的二进制文件,若指定文件不存在,则建立新文件。173 fread(buf, 64, 2, fp)的功能是 (A)从fp文件流中读出整数64,并存放在buf中(B)从fp文件流中读出整数64和2,并存放在buf中 (C)从fp文件流中读出64字节的字符,并存放在buf中(D)从fp文件流中读出2个64字节的字符,并存放在buf中 174 以下程序的功能是 #include FILE *fp;char str[] = ”HELLO“; fp = fopen(”CON“, ”w“);if(NULL == fp) { printf(”file open error!n“); exit(1); } fputs(str, fp);fclose(fp);return 0;}(A)在屏幕上显示HELLO(B)在打印机上打印出HELLO(C)把HELLO存入CON文件中(D)都不对 ..作为输出设备时,CON是标准输出设备显示器的文件名,是dos的保留字。175 C语言中文件的格式化输入输出函数对是(A)fscanf/fprintf(B)fread/fwrite(C)fgets/fputs(D)fgetc/fputc 176 C语言中文件的数据块输入输出函数对是(A)fread/fwrite(B)fscanf/fprintf(C)fgetc/fputc(D)fgets/fputs 177 feof(fp)函数用来判断文件是否结束,如果未遇到文件结束,函数值为(A)0(B)1(C)非零(D)false 178 fgetc函数的作用是从指定文件读入一个字符,关于对应文件的打开方式,不正确的是(A)只读(B)只写(C)”r“(D)读写 179 若调用fputc函数输出字符成功,则其返回值是(A)0(B)1(C)EOF(D)输出的字符 180 fseek函数的功能是 (A)改变文件位置的指针位置(即下一次读写操作从文件的什么位置开始)(B)使文件位置指针重新置于文件开头(C)返回文件位置指针的当前值(D)关闭文件 181 以下程序的功能是 #include FILE *fp;char ch; fp = fopen(”filename.txt“, ”w“);if(NULL == fp){ printf(”file open error!“); exit(1);} while((ch=getchar())!= '@') { fputc(ch ,fp); putchar(ch); } fclose(fp); return 0;}(A)把从键盘输入的字符依次输出到名为filename.txt的磁盘文件中(用@作为输入结束标志),同时在屏幕上显示这些字符。(B)把从键盘输入的字符依次输出到名为filename.txt的磁盘文件中(用@作为输入结束标志)。 (C)把从键盘输入的字符输出到屏幕(用@作为输入结束标志)。(D)从名为filename.txt的磁盘文件中读入字符(用@作为输入结束标志),并在屏幕上显示这些字符。182 下面程序的功能是将数组str的4个元素写到名为filename.dat的二进制文件中。程序中需要补充的语句是 #include FILE *fp;char str[] = ”abcd“; fp = fopen(”filename.dat“, ”wb“);if(NULL == fp){ printf(”file open error!“); exit(1);} ____________________________ fclose(fp); return 0;}(A)fwrite(str, sizeof(char), 4, fp);(B)fwrite(fp, sizeof(char), 4, str);(C)fread(str, sizeof(char), 4, fp);(D)fwrite(str[0], sizeof(char), 1, fp);183 下面的程序执行后,文件file.txt中的内容是 #include fun(”file.txt“, ”Fine, thank you!“);return 0;} void fun(char *fname, char *st){ FILE *fp;int len, i; fp = fopen(fname, ”w“);if(NULL == fp){ printf(”file open error!“); exit(1);} len = strlen(st);for(i=0;i 变量的指针即变量的地址,是指变量所占内存单元的首地址。185 如果已经定义int x;,则对指针变量pointer进行说明和初始化正确的是(A)int pointer = x;(B)int pointer = &x;(C)int *pointer = &x;(D)int *pointer = *x;186 如果已经定义int x, *pointer;,则下面赋值语句正确的是(A)pointer = &x;(B)pointer = x;(C)*pointer = &x;(D)*pointer = *x;187 即使两个指针变量的类型相同,它们也不能(A)相减(B)相加(C)比较(D)指向同一地址 188 在C语言中,对变量的访问方式是 (A)能直接访问,能间接访问(B)能直接访问,不能间接访问(C)不能直接访问,能间接访问(D)不能直接访问,不能间接访问 189 在C程序说明语句int(*pointer)[5];中,pointer表示的是一个 (A)指向整型变量的指针(B)指针数组的名字,包含5个指向整型数据的指针(C)指向包含5个整型元素的一维数组的指针(D)指向函数的指针 190 在C程序说明语句int *pointer[5];中,pointer表示的是一个 (A)指向整型变量的指针(B)指针数组的名字,包含5个指向整型数据的指针(C)指向包含5个整型元素的一维数组的指针(D)指向函数的指针 191 在C程序说明语句int(*pointer)();中,pointer表示的是一个(A)指向整型变量的指针(B)指向数组的指针 (C)返回值为指针的函数名字(D)指向函数的指针,函数返回值为一个整数 192 在C程序说明语句int *pointer();中,pointer表示的是一个(A)指向整型变量的指针(B)指向数组的指针 (C)返回值为指针(指向的对象为int)的函数名字(D)指向函数的指针,函数返回值为一个整数 193 设有定义int a=3, b, *p=&a;,则下列语句表达有错的是(A)b = *a;(B)b = *&a;(C)b = *p;(D)b = a;·试题讲评 a不是指针变量,不能使用指针运算符*。194 若有说明int i, j=7, *p=&i;,则与i = j;等价的语句是(A)i = p;(B)*p = j;(C)p = &j;(D)*p = &j;195 若有说明int a[10], *p=a;,则对数组元素引用不正确的是(A)*(a + 2)(B)p[2](C)*(p + 2)(D)p + 2 196 若有如下说明语句,则下面叙述中不正确的是 struct student { long num;char name[20];char sex;int age;} stu;(A)struct是结构体类型关键字(B)struct student是结构体类型(C)num,name,sex,age都是结构体成员名(D)stu是结构体类型名 197 若有如下说明语句,则定义了 union student { long num;char name[20];char sex;int age;};(A)结构体类型(B)结构体变量(C)共用体类型(D)共用体变量 198 当定义一个结构体变量时,系统分配给它的内存空间字节数是 (A)各成员所需内存字节数的总和(B)结构体中第一个成员所需内存字节数(C)结构体中最后一个成员所需内存字节数(D)成员中占内存字节数最大的 199 有以下三种形式可供选择,则为了表示结构体变量中的成员,各选项中叙述正确的是 1、结构体变量.成员名 2、(*结构体指针变量).成员名 3、结构体指针变量->成员名(A)只能用1或2表示(B)只能用1或3表示(C)只能用2或3表示(D)三种形式均可 200 以下程序在VC6.0下运行后的输出结果为 #include struct dt { char a[4];int b;double c;} data; int main(void){ printf(”%dn“, sizeof(struct dt)); return 0;}(A)4(B)8(C)16(D)3 201 若有以下定义,则对变量student1中“生日”的正确赋值方式是 struct student { int num;char name[20], sex;struct { int year, month, day; } birthday;}; struct student student1;(A)student1.birthday.year = 2003;student1.birthday.month = 5;student1.birthday.day = 1;(B)year = 2003;month = 5;day = 1;(C)birthday.year = 2003;birthday.month = 5;birthday.day = 1;(D)student1.year = 2003;student1.month = 5;student1.day = 1;202 若有以下定义,则下面各输出语句中能输出字母J的是 struct student { int num;char name[20];}; struct student school[10000] = {{1001, ”Mike“}, {1002, ”James“}, {1003, ”Tom“}};(A)printf(”%c“, school[0].name[0]);(B)printf(”%c“, school[1].name[0]);(C)printf(”%c“, school[2].name[0]);(D)printf(”%c“, school[1].name);203 若有以下定义,则下面各输入语句中不正确的是 struct student { int num;char name[20];char sex;float score;} student1,*p = &student1;(A)scanf(”%d“, &student1.num);(B)scanf(”%s“, &student1.name);(C)scanf(”%c“, &(*p).sex);(D)scanf(”%f“, &(p->score));204 以下程序的输出结果是: #include struct student { int num; float score;}; void fun(struct student tmp);int main(void){ struct student stu[2] = {{1001,650}, {1002,550}};fun(stu[0]);printf(”%d,%4.0fn“, stu[0].num, stu[0].score);return 0;} void fun(struct student tmp){ struct student stu[2] = {{1003, 450}, {1004, 250}}; tmp.num = stu[1].num;}(A)1001, 650(B)1002, 550(C)1004, 650(D)1004, 250 205 以下程序的输出结果是: #include struct student { int num; float score; char name[20];}; void fun(struct student *p);int main(void){ struct student stu[2] = {{1003, 450, ”Liu“}, {1004, 250, ”Tao“}};fun(stu);printf(”%d,%3.0f,%sn“, stu[0].num, stu[0].score, stu[0].name);return 0;} void fun(struct student *p){ struct student stu[2] = {{1001,650, ”He“}, {1002,550, ”Li“}},*q=stu; ++q; *p = *q;}(A)1002,550,Li(B)1004,250,Tao(C)1001,650,He(D)1003,450,Liu 206 以下程序的输出结果是: #include struct student { long num; char name[10]; int age;}; void func(struct student *p);int main(void){ struct student stu[3] = {{1101, ”Liu“, 21}, {11102, ”Tao“, 22}, {1103, ”Xu“, 23}};func(stu + 1); return 0;} void func(struct student *p){ printf(”%s“, p->name);}(A)Tao(B)Liu(C)Xu(D)11102 207 以下程序的输出结果是: #include struct student { int num;int *q;}; int main(void){ int age[3] = {16, 17, 18};struct student stu[3] = {{1001, &age[0]}, {1003, &age[1]}, {1005, &age[2]}};struct student *p = stu; printf(”%d,%d",(p+1)->num, *((p+1)->q));return 0;}(A)1003,17(B)1001,16(C)1005,18(D)1003,16 帕思专插本广东省权威专插本培训机构 广州大学2013年计算机科学与技术专业招收本科插班生 《程序设计基础》考试大纲 一、考试要求 《程序设计基础》是计算机科学与技术专业的核心课程,要求考生能够了解计算机高级语言设计的特点,熟练掌握结构化程序设计的方法,掌握程序设计的系统分析方法,理解将一般的数学模型转换为程序的步骤和编程设计方法,初步具有独立分析和独立设计的能力。 二、考试内容 1.基本数据与表达式,C++语言的字符集与词汇,基本数据类型与存储形式,数据对象与访问,表达式,数据输入和输出。 2.程序控制结构,选择控制,循环控制,判断表达式的使用。 3.函数,函数的定义与调用,函数参数的传递,函数调用机制,函数指针,变量存储特性与标识符作用域,多文件程序结构。 4.数组,一维数组,指针数组,二维数组,数组作为函数参数,动态存储,字符数组与字符串,string类。 5.结构,定义结构和访问结构,结构数组,链表。 6.输入输出流,文件处理。 三、考试时间与题型 1.考试时间:120分钟。 2.题型包括选择题、填空题、判断题、编程题。 四、参考书 周霭如,《C++程序设计基础》,电子工业出版社2009年版。 帕思专插本广东省权威专插本培训机构1第三篇:C语言程序设计基础课程设计报告
第四篇:C语言程序设计基础单项选择题库
第五篇:2013广州大学程序设计基础