上海理工大学c语言程序调试题复习.docx
- 格式:docx
- 大小:55.92 KB
- 文档页数:4
上海理工大学c语言复习卷以及答案参考解答一、单选题1. 以下C程序中预处理命令写法正确的是: D 。
[知识点:编译预处理命令]A. #include “studio.h”B. #include [stdio.h]C. #include {stdio.h}D. #include “stdio.h”2.执行下列语句序列后,不可能出现的运行结果是___ C ____。
[知识点:开关语句]int n;scanf( "%d", &n);switch ( n ){case 1:case 2: putchar('X');case 3:case 4: putchar('Y'); break; default: putchar('Z'); A. 显示:zB. 显示:xyC. 显示:xD. 显示:y3.设a,b为整型变量, 且二者均不为0, 以下关系表达式中恒成立的是___ C ___。
[知识点:运算与数据类型]A. a/b*b/a==1B. a/b*b==aC. a*b/a==bD. a*b/ a*b ==14.设有定义:int x=10,y=20,z=30; 则执行下列语句后的结果是___ B ____。
[知识点:if语句]if ( x>y ) z=x;x=y; y=z;printf("%d,%d,%d",x, y, z ); A. 20,30,20B. 20,30,30C. 20,30,10D. 10,20,305.下列程序的输出结果是__ B ____。
[知识点:整型常量的表示和自增运算] main(){int a = 011;printf( "%d\n", ++a ); }A. 9B. 10C. 11D. 126.设 x, y 和 z 是 int 型变量,且 x=3, y=4, z= 5,则下面表达式中值为0的是__ B ___。
一、单选题1.下列选项中,与实现运行时多态性无关的是()A、重载函数B、虚函数C、指针D、引用答案: C2.在C语言中,下面对函数不正确的描述是()A、当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变B、允许函数递归调用C、函数形参的作用范围只是局限于所定义的函数内D、子函数必须位于主函数之前答案: D3.若a是int类型变量,则计算表达式a=1000%999的值是A、0B、1C、2D、3答案: B4.C语言中,运算对象必须是整型的运算符是:()A、%B、/C、*D、+答案: B5.以下不能定义为用户标识符的是()。
A、MAINB、_HJC、2ongD、LINE1答案: C6.下列有关C语言的叙述中错误的是()。
A、C语句必须以分号结束B、任何一个C程序中有且只有一个主函数C、复合语句在语法上可被看作一条语句D、C程序中对数据的任何操作都可由运算符实现答案: D7.下列函数中哪一个是正确的构造函数A、B::B(inta,intb):x(a),y(b){}B、B::B(inta,intb):A(a),y(b){}C、B::B(inta,intb):x(a),B(b){}D、B::B(inta,intb):A(a),B(b){}答案: D8.下面不能正确进行字符串赋值操作的语句是( )。
A、char s[5]={"ABCD"}B、char s[5] s="ABCD"C、char *ss="ABCDEF"D、char *s="ABCD"答案: C9.类的析构函数的作用是A、对象的初始化B、删除对象时的清理任务C、与一般成员函数一样D、类的初始化答案: B10.设有数组定义:chararray[]=”China”则数组array所占的空间为:A、4个字节B、5个字节C、6个字节D、7个字节答案: C11.如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( )。
20 17 /20 18 学年第 2 学期课程代码: 12002000 课程名称 : 程序设计与实践(C)试卷: A 、B□考试形式:开卷□、闭卷 考试时间: 60 分钟…………………………………………………………………………………………………………学号姓名任课教师_ _ ____ 专业得分一、基础题(30%,每题2分共30分)1、C语言语法规定的合法自定义标识符是 d 。
A. 4aB. #nameC. charD. print2. c 正确的叙述。
A. 在C程序中,main()函数必须位于程序的最前面B. C程序的每行中只能写一条语句C. 输入输出是利用库函数实现的D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误3、有 c 函数C程序才能正确地运行。
A. printf()函数B. 定义的函数C. main()函数D.不需要函数4、执行代码:int k;k=1234;printf("|%06d|\n",k);后显示 b 。
A.无法显示 B.|001234| C.|1234 | D.|+01234|5、用小数或指数形式输入实数时, scanf函数中格式说明字符为 f 。
A.d B.c C.f D.r6、可以输入字符型数据至字符变量c的语句是 d 。
A.putchar(c); B.getchar(c); C.getchar(); D.c=getchar();7、在int x=-2;if(x)语句中, x代表的逻辑是 c 。
A、trueB、falseC、1D、08、执行下列代码后,屏幕的输出结果是 d 。
#include <stdio.h>int main(){int a=3,b=2;printf("%f\n",b);return 0;}A、2B、2.000000C、0D、0.0000009、有一学习小组,组内3个学员,其成绩存入s1,s2,s3浮点型数据类型的变量中 a 表达式可以计算出小组成绩最高的学员。
20 17 /20 18 学年第 1 学期《程序设计及实践C》期中试卷试卷: A B□教师名学号姓名 __________ 得分_____________1 ○A○B○C○D2 ○A○B○C○D3 ○A○B○C○D4 ○A○B○C○D5 ○A○B○C○D6 ○A○B○C○D7 ○A○B○C○D8 ○A○B○C○D9 ○A○B○C○D10○A○B○C○D11○A○B○C○D12○A○B○C○D13○A○B○C○D14○A○B○C○D15○A○B○C○D16○A○B○C○D17○A○B○C○D18○A○B○C○D19○A○B○C○D20○A○B○C○D21○A○B○C○D22○A○B○C○D23○A○B○C○D24○A○B○C○D25○A○B○C○D1.下列属于C语言中关键字的是(D )A. swithB. printC. DefaultD. typedef2. 设要定义n为整型变量,定义x为浮点型变量,正确的语句是:(D)。
A. int n, int x;B. int n, float x;C. int n; char x;D. int n; float x;3. 下面四个选项中,均为合法的常量的选项是(A)。
A. 160、 -0xffff、 011B. -0xcdf、 01A、 0xeC. -01、 986,012、 0668D. -0x48A、 2e5、 0x4. 执行代码:int k;k=8567;printf("|%-06d|\n",k);后显示(C)。
A.无法显示 B.|008567| C.|8567 | D.|-08567|5. 以下程序的输出结果是( B )。
#include <stdio.h>void main(){int num=0xF;int money=010;int total = num * money;printf("%d,%d,%d\n",num,money, total);}A. 10,10,100B. 15,8,120C.15,10,150D.6,10,606.如果有double a,b,c;正确输出3个数之和的语句是( C )。
最新上海市高等学校计算机等级考试试卷二级c语言程序设计汇总2010年上海市高等学校计算机等级考试试卷二级C语言程序设计2010年上海市高等学校计算机等级考试试卷二级 C语言程序设计(本试卷考试时间 120 分钟)一、单选题 ( 本大题 15 道小题,每小题 1 分,共 15 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。
1. 以下C程序中预处理命令写法正确的是:答案: DA. #include (stdio.h)B. #include [stdio.h]C. #include {stdio.h}D. #include2. 设有变量定义语句char a; 则下面的赋值语句中 ( ) 是正确的。
答案: AA. a='&';B. a="&";C. a=' ' ';D. a='16' ;3. 设有char ch; 与语句“ch=getchar();”等价的语句是:答案:DA. printf("%c",ch);B. printf("%c",&ch);C. scanf("%c",ch);D. scanf("%c",&ch);4. int a=2, b=5;则表达式21%9/(float)a+4/b*b的运算结果为( )。
A. 2B. 1D. 05. 能正确表示逻辑关系"a>=10 或 a<=0"的C语言表达式是( )。
答案: CA. a>=10 or a<=0B. a<=0|a>=10C. a<=0||a>=10D. a>=10 && a<=06. 设有int n=60;写出下列语句的运行结果switch (n/10){case 6: printf("@");break;case 5: printf("#");default: printf("$");}答案: DA. @#$B. #$C. $D. @7. 设有int i; 以下语句中,循环次数为100次的语句是:答案: DA. for ( i=0; i<=100; i++ )B. for ( i=0; i<99; i++ )C. for ( i=1; i<99; i++ )D. for ( i=0; i<100; i++ )8. C程序中,用于提前结束本次循环、进行下一次循环的语句是( )。
C语言程序设计目录第一章C语言程序设计概述 (1)一、主要内容 (1)二、练习题部分 (1)三、参考答案 (3)第三章数据类型、运算符和表达式 (4)一、主要内容 (4)二、练习题 (5)(一)练习题之数据类型 (5)(二)练习题之运算符和表达式 (8)三、参考答案 (13)(一)练习题之数据类型参考答案 (13)(二)练习题之运算符和表达式参考答案 (14)第四章顺序程序设计 (15)一、主要内容 (15)二、练习题 (15)三、参考答案 (16)第五章选择结构程序设计 (17)一、主要内容 (17)二、练习题 (17)三、参考答案 (22)第六章循环结构 (25)一、主要内容 (25)二、练习题 (25)三、参考答案 (34)第七章数组 (39)一、主要内容 (39)二、练习题 (39)三、参考答案 (49)第八章函数 (54)一、主要内容 (54)二、练习题 (55)三、参考答案 (62)第九章预处理命令 (67)一、主要内容 (67)二、练习题 (67)第十章指针 (69)一、主要内容 (69)二、练习题 (69)三、参考答案 (74)第十一章结构体和共用体 (76)一、主要内容 (76)二、练习题 (76)三、参考答案 (78)第十二章位运算 (82)一、主要内容 (82)二、练习题 (82)第十三章文件 (83)一、主要内容 (83)二、练习题 (83)三、参考答案 (85)第一章C语言程序设计概述一、主要内容c程序基本结构特点函数与主函数1.程序由一个或多个函数组成,函数由函数头和函数体构成。
2.必须有且只能有一个主函数main()3.程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。
程序语句1.C程序由语句组成,用“;”作为语句终止符2./* */部分为注释,不能嵌套,不产生编译代码编译预处理不是C语言的一部分C程序的运行步骤运行一个C程序,从输入源程序开始,要经过编辑源程序文件(•C)、编译生成目标文件(•obj)、连接生成可执行文件(•exe)和执行四个步骤二、练习题部分一、选择题:1、C语言程序编译过程中产生的文件有:()A. 索引文件和文本文件两种B. 目标文件和可执行文件C. 二进制文件一种D. ASCII码文件和二进制文件两种2、以下说法中正确的是: ( )A. C语言程序总是从第一个定义的函数开始执行B. 在C语言程序中,要调用的函数必须在main函数中定义C. C语言程序总是从main函数开始执行D. C语言程序中,main函数必须放在程序的开始部分3、C语言源程序的基本单位是:()A. 函数B. 标识符C. 表达式D. 语句4、以下叙述正确的是:()A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚、具有其他语言的一切优点5、在一个C语言程序中:()A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置6、C++语言中工程文件的扩展名是:。
《C语言程序设计》课程考核重点及复习资料一、单项选择题【1.1】以下不正确的C语言标识符是____。
A) int B) a_1_2 C) ab1exe D) _x【1.2】以下是正确的C语言标识符是____。
A) #define B) _123 C) %d D) \n【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。
A) print _3d oodb aBcB) i\am one_half start$it 3paiC) Pxq My->book line# His.ageD) str_l Cpp pow while【1.4】下面各选项组中,均是C语言关键字的组是。
A) auto,enum,include B) switch,typedef,continueC) signed,union,scanf D) if,struct,type【1.5】下列不属于C语言关键字的是。
A) default B) register C) enum D) external【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。
A) 程序文件的开始 B) 程序文件的最后C) 它所调用的函数的前面 D) 程序文件的任何位置【1.7】下列关于C语言的叙述错误的是____A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义【1.8】在C语言中,错误的int类型的常数是。
A) 32768 B) 0 C) 037 D) 0xAF【1.9】执行语句 printf("%x",-1);屏幕显示____。
A) -1 B) 1 C) -ffff D) ffff【1.10】已知 long i=32768;执行语句printf("%d",i);屏幕显示____。
医疗保险、公积金的数据作为一个记录。
•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
功能 2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
功能 3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
功能4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
功能5. 删除记录:可删除数据文件中的任一记录。
功能6. 统计:(A)计算各项工资平均工资及总工资,(B)•统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2000元、2000~1000元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
7功能7.保存数据文件功能。
例如:职工工资信息表ID号姓名基本工资职务工资津贴医疗保险-公积金-总工资01 张望1286 794 198 109 135 203402 李明1185 628 135 94 114 174003 王小民895 438 98 64 73 129404 张效章1350 868 210 116 150 216205 彭山745 398 84 61 68 1098各项平均工资1092.2 625.2 145 88.8 10817、纳税系统设计要求:(1)只能使用C语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)写出课程设计报告,具体要求见相关说明文档功能要求:个人所得税每月交一次,底线是1600元/月,也就是超过了1600元的月薪才开始计收个人所得税。
个人所得税税率表一(工资、薪金所得适用)级数----------全月应纳税所得额----------税率(%)1--------------不超过500元的--------------------------52----------超过500元至2000元的部分------------103----------超过2000元至5000元的部分----------154----------超过5000元至20000元的部分---------205----------超过20000元至40000元的部分-------256----------超过40000元至60000元的部分-------307----------超过60000元至80000元的部分-------358----------超过80000元至100000元的部分------409----------超过100000元的部分---------------------45表中的应纳税所得额是指以每月收入额减除1600元后的余额。
上海理工大学C语言题库医疗保险、公积金的数据作为一个记录。
?该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
功能 2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
功能 3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
功能4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
功能5. 删除记录:可删除数据文件中的任一记录。
功能6. 统计:(A)计算各项工资平均工资及总工资,(B)?统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2000元、2000~1000元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(?包括各项总的平均工资)。
7功能7.保存数据文件功能。
例如:职工工资信息表ID号姓名基本工资职务工资津贴医疗保险-公积金-总工资01 张望1286 794 198 109 135 203402 李明1185 628 135 94 114 174003 王小民895 438 98 64 73 129404 张效章1350 868 210 116 150 216205 彭山745 398 84 61 68 1098各项平均工资1092.2 625.2 145 88.8 10817、纳税系统设计要求:(1)只能使用C语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)写出课程设计报告,具体要求见相关说明文档功能要求:个人所得税每月交一次,底线是1600元/月,也就是超过了1600元的月薪才开始计收个人所得税。
个人所得税税率表一(工资、薪金所得适用)级数----------全月应纳税所得额----------税率(%)1--------------不超过500元的--------------------------52----------超过500元至2000元的部分------------103----------超过2000元至5000元的部分----------154----------超过5000元至20000元的部分---------205----------超过20000元至40000元的部分-------256----------超过40000元至60000元的部分-------307----------超过60000元至80000元的部分-------358----------超过80000元至100000元的部分------409----------超过100000元的部分---------------------45表中的应纳税所得额是指以每月收入额减除1600元后的余额。
5月17日程序调试题复习
1.程序调试题1
调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。
将结果(包括C_2_1.C文件和
C_2_1.EXE文件)保存到实验结果文件夹屮。
功能说明:程序从键盘输入5个字符串(每个字符串长度不超过80,且字符串屮不含有空格),程序找出其中最大的字符串放到max中,最后输出该最大的字符串。
如输入:
BASIC
Java
C++
Pascal
PHP
则输出:Pascal
带错误原程序(见素材\C_2_1.C):
#include <stdio.h>
#include <string.h>
int main()
{
int i;
char s[81], max[81]={'\0'};
for (i=0; i<5; i++)
{ gets(s);
if (strcmp(s,max))
strcpy(max,s);
}
puts(max);
getchar(); /*木句无错;暂停程序,按任意键继续*/
}
2.程序调试题2
调试要求:下列程序包含3个错误,请按题屮的功能要求,调试并修改该程序(在所修改语句后加/****♦**/字样的注释),使其运行能得到正确的结果。
将结果(包括C_2_2.C文件和
C_2_2.EXE文件)保存到实验结果文件夹中。
功能说明:函数aver的功能是计算n个整数去掉一个最大值和一个最小值后的平均值,程序
从键盘输入8个整数,通过调用函数aver计算这8个整数去掉一个最大值和一个最小值后的平均值,然后输出(保留一位小数)。
如输入:1 2345678 则输出:average=4.5
带错误原程序(见素材\C_2_2.C):
#inelude <stdio.h>
float aver(int *a, int n)
{ int i, max, min;
float s;
s=max=min=a[O];
for (i=0; i<n; i++)
{ s+=a[i];
if (a[i]>max) max=a[i];
if (a[i]>min) min二a[i];
}
return (s-max-min)/(n-2);
}
int main()
{
int b[8], i;
for (i=0; i<8; i++)
scanf(”%d”, b+i);
printf("average=%.lf\n"z aver(*b,8));
getchar();严本句无错;暂停程序,按任意键继续*/
}
3.程序调试题3
调试要求:下列程序包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/**♦****/字样的注释),使其运行能得到正确的结果。
将结果(包括C_2_3.C文件和
C_2_3.EXE文件)保存到实验结果文件夹中。
功能说明:程序从键盘输入8个整数,统讣并输出其中数值在70~80之间(含70和80)的数的个数。
如输入:23 71 56 85 94 78 63 80 则输出:3
带错误原程序(见素材\C_2_3.C):
#include <stdio.h>
int main()
{
int a[8], \, c;
c=0;
for (i=0; i<8; i++)
{
sanf(“%d“, &a[i]);
if (70<=a[i] and a[i]<=80) C++;
}
printff”%d\n”, c);
getcharf); /*本句无错;暂停程序,按任意键继续*/
4.程序调试题4
调试要求:下列程序包含3个错误,请按题屮的功能要求,调试并修改该程序(在所修改语句后加/**♦****/字样的注释),使其运行能得到正确的结杲。
将结果(包括C_2_4・C文件和
C_2_4.EXE文件)保存到实验结果文件夹中。
功能说明:程序从键盘输入一个字符串s (长度不超过80),然后用冒泡法将s中下标值为偶数的元素按照字符顺序从小到大排序,其它元素不变,最后输出排序后的字符串。
如输入:2d4a3blc 则输出:Id2a3b4c
带错误原程序(见素材\C_2_4.C):
#include <stdio.h>
#include <string.h>
int main()
{
char s[],t;
int i, j, k;
gets(s);
k=strle n(s);
for (i=0; i<=k-2; i+=2) //用冒泡法对下标值为偶数的元素从小到大排序
for (j=2; j<=k-3-i; j++)
讦(s[j]>s[j+2]) 〃下标值为偶数的相邻两个元素逆序,则交换
{ t=s[j]; s[j]=s[j+2]; s[j+2]=tt; }
puts(s);
getchar(); /*本句无错;暂停程序,按任意键继续*/
}
5.程序调试题5
调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。
将结果(包括C_2_5.C文件和
C_2_5.EXE文件)保存到实验结果文件夹中。
功能说明:函数secondary_max的功能是在n个整数中找出次大值,程序从键盘输入8个整数,通过调用函数secondary_max找出这8个整数中的次大值,然后输出。
如输入:71 23 56 85 94 78 63 80 则输出:85
带错误原程序(见素材\C_2_5.C):
#inelude <stdio.h>
int sec on dary_max(i nt a[], int n)
{ int i, maxi, max2;
maxl=a[0]; max2=a[l];
讦(maxl<max2) // maxi1!1放最大值,max2中放次大值{i=maxl; max2=maxl; max2=i;}
for (i=2; ivn; i++)
{ if (a[i]>maxl) { maxl=max2; maxl=a[i];}
else if (a[i]>max2) max2=a[i];
}
return max2;
}
int main()
{
int b[8],i;
for (i=0; i<8; i++) scanf("%d H, b++);
prin tf("average=%d\n”,sec on dary_max(b,8));
getcharf); /*本句无错;暂停程序,按任意键继续*/ }。