中南大学2008级电气类c语言程序设计试题
2008级C语言程序设计试卷_A带答案(2009.6)

天津工业大学200 8 ~200 9 学年第 2 学期C 程序设计试卷(A)学院班级学号姓名注意事项:1、本试卷共13 页,满分为100 分,考试时间为110 分钟。
2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,不得使用红颜色墨水笔。
二、阅读程序题答题处:(每空3分,共30分)四、完善程序填空题答题处:(每空2分,共18分)一、单项单选题:(每题 1 分,共40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1.以下标识符中,能够作为变量名使用的是【1】。
A) n_1 B) charC) x(2) D) 2_a2.若有定义语句char ch='\072'; 则变量ch 【2】。
A) 定义错误B) 包含1个字符C) 包含3个字符D) 包含4个字符3.已知字母B的ASCII码值为66,则运行下面程序段后,输出结果是【3】。
char ch1; ch1='B'+'5'-'3'; printf("%d,%c",ch1,ch1);A) D,D B) 68,DC) D,68 D) 68,684.若有如下语句:int x; float y;scanf("k=%d,f=%f",&x,&y);则能够正确的为变量x输入5、为变量y输入3.2的方法是【4】。
说明:备选答案中的<CR>表示回车符A) 5 3.2 <CR> B) 5 <CR> 3.2 <CR>C) k=5,f=3.2 <CR> D) x=5,y=3.2 <CR>int k=10; printf("%d,%o,%x",k,k,k);A) 12,a,10 B) 12,10,aC) 10,12,a D) 10,a,126.判断char 型变量ch 是否为小写字母的正确表达式是【6】。
2008年9月计算机等级考试二级C语言模拟试卷及其答案

2008年9月计算机等级考试二级C语言模拟试卷及其答案
转贴于:计算机二级考试_考试大
全国计算机等级考试二级C语言模拟试卷答案
一、选择题
(1)D
评析:算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。
一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。
(2)B
评析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。
《电力拖动控制线路与技能训练》试卷(A)
.21。
中南大学2008接口技术试题

中南大学考试试卷(A)200 -- 2010 学年下学期期末考试试题时间100分钟微机原理与接口技术课程 48 学时学分考试形式:开卷专业年级:通信08级总分100分,占总评成绩 70 %注:只能带教材书作为工具,不能带其它任何资料(包括草稿纸),尤其是打印稿!一、填空、选择题(本大题共20小题,每小题1分,共20分)1. 8086中断系统的中断向量表,占内存中地址从00000H开始的存储空间为()2. 8086CPU在中断响应周期中获得中断类型码为24H,则该中断服务程序的入口地址在内存中的地址区间是()3.BP=1000H,DS=2000H,SS=5000H,MOV AX,[BP]寻址时物理地址是()。
4.并行接口芯片8255A工作在方式1输出时,它和外设间的联络信号是()A.STB和IBF B.STB和OBF C.ACK和IBF D.ACK和OBF5.指令MOV AX,[BP]的源操作数寻址方式是()寻址6.进入DEBUG要进行汇编需输入()命令。
7. 在8259A内部,用于反映当前CPU正在执行哪些中断源程序的部件是()A.中断请求寄存器B.中断服务寄存器C.中断屏蔽寄存器D.中断优先级比较器8.若可编程并行接口芯片8255A的PA口被设定为方式2,则此时PA口()A.既能作输入口,又能作输出口B.仅能作输入口(由初始化决定)C.仅能作输出口(由初始化决定)D.仅能作不需要联络信号的I/O口9. 8255工作于方式1输入时,采用查询方式接收数据之前,应查询的信号是( )A.IBFB.ST BC.INTED.INTR10.在Intel 8253应用中,如果希望由一个硬件边沿信号产生一个可编程宽度的负脉冲,可设置8253的方式为()11. 8086CPU的寄存器中,能在操作数内存寻址时用作地址寄存器的是()A.AX B.BX C.CX D.DX12. 8086CPU的基本总线周期由T1、T2、T3、T44个时钟周期组成,系统规定在存储器读总线周期时,读命令信号RD在T2开始时有效,在T4开始时变为无效,而存储器的地址信号应在()时发生。
(完整版)C语言程序设计题库及答案,推荐文档

A.552 B.264 C.144 D.-264 30 . int a=3,b=2;printf(“%d,%d\n”,--a,b++);输出结果是(A )。
A.2,2 B.2,3 C.3,2 D.3,3
判断题(共 5 题,每题 2 分) 1 . 只能在循环体内和 switch 语句体内使用 break 语句。(对) 2 . 一个算法应该具备有穷性、确定性、输入、输出和有效性。(对) 3 . C 语言中,每个程序都必须要有一个且只有一个 main 函数。(对) 4 . 调用函数时,实参是一个数组名,则向函数传递的是数组的首地址。(对)
5 . 表达式 16/8*sqrt(4.0)/2 值的数据类型为 double 双精度实型。(对)
第二套试题
单选题(共 20 题,每题 4 分) 1 . 若有输入语句 scanf( %d%d%d,&x,&y,&z);则不能使 x 值为 5,y 值为 6,z 值为 7 的输入是___A___。
A.5,6 ,7
A.5,6 ,7
B.5 回车换行 6 7 C.5 6 7
D.5,6,7
12 . 若 i,j 已定义为 int 类型,则下程序段中内循环体的总的执行次数是( B )。 for (i=3;i>0;i--) for (j=0;j<=4;j++){...}
A.12
B.15
C.16
13 . 下列选项中,合法的 C 语言关键字是_D___。
A.1
B.3
C.2.0
D.2.5
19 . func(exp1,(exp2,exp3),(exp4,exp5,exp6));含有(C )个实参。 A.1 B.2 C.3 D.6 20 . 有 int x=3,y=4,z=5;则下面表达式中值为 0 的是__B____。 A.x&&y B.! (x<y&&!z||1) C.x||y+z&&y-z D.x<=y 21 . 已定义 c 为字符型变量,则下列语句中正确的是____C__。
中南大学C语言历年试卷

[6] );
if(isprime(*(p+i)) ) sum+=*(p+i)
}
printf(“sum=%d”,sum);
}
int isprime(int x)
{ int i,f=1;
for(i=2;i<=sqrt(x);i + + )
if(x%i = = 0) {f=0;break;}
[7]
;
}
3. 以下程序调用 invert 函数按逆序重新放置 a 数组中元素的值。a 数组中的值在 main
if (*(p1+k)= =*(p2+k))
printf("%c",*(p1+k));
}
四. 阅读程序,根据提示信息完善程序,每个空只能填写一条语句或一个表达式(每空
3 分,共 30 分)
1. 以下程序求数组中值最大的元素在数组中的下标。
# include <stdio.h>
void main()
{ int a[10] , i , num = [1]
void main()
{ char *chp ;
for (chp =b;*chp ;chp +=2) printf("%s",chp);
printf("\n");
}
10. 以下程序运行后,输出结果是 [10]
void main( )
{ char *s="abcde";
s+=2;
print("%s \n",s);
函数中读入。
#include <stdio.h>
电气类专业C上机考试题

电气类专业C程序设计上机考试试题(附答案)第一题1.输入一小写字母,分别以字符形式与数值形式输出与该小写字母相应的大写字母2.输入一个华氏温度,要求输出摄氏温度。
公式为c=5/9*(f-32)3.写一个程序,输入实数X,输出Y,计算Y=3X3+0.4X2-2 X / 34.编写程序:读入三个整数a,b,c,然后交换它们中的数,使a存放b的值,b存放c的值,c存放a的值。
5.编写程序:输入9时23分并把它化为分钟后输出。
(从零点整开始计算)。
6.要将“Chiina”翻译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。
例如,字母“A”后面的4个字母是“E”,用“E”代替“A”。
因此,“Chian”应译成“Glmre”。
用赋初值的方法是c1,c2,c3,c4,c5五个变量的值分别为‘C’、‘h’、‘i’、‘n’、‘a’,经过运算,使c1、c2、c3、c4、c5分别为‘G’、‘l’、‘m’、‘r’、‘e’,并输出7.编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数和prinf函数输出这两个字符以及它们的ASCII值。
8.设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积9.编写程序,输入两个整数,计算并输出它们的和、差、积、除(精确除)、整除及模的结果。
10.编一程序,对于一个给定的一个百分制成绩,输出相应的五分制成绩。
设:90分以上为ˊAˊ,80~89分为ˊBˊ,70~79分为ˊCˊ,60~69分为ˊDˊ,60分以下为ˊEˊ。
11.输入3个整数,要求按由小到大的顺序输出12.输入4个数,输出其中的最大数和最小数。
13.写一程序,输入x,输出y14.给定一个不多于5的正整数,要求:(1)求它是几位数;(2)分别打印出每一位数字(3)按逆序打印出各位数字。
例如原数为321,应输出123。
15.编写程序,要求输入整数a和b.若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。
C语言程序设计试题集及其答案[修改版]
第一篇:C语言程序设计试题集及其答案第一章基础知识一.填空1.每个C程序都必须有且仅有一个________ 函数。
2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。
3. 软件是程序,以及______、使用和维护所需要的所有文档。
4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。
5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。
6. C语言是由________组成的。
7. C语言的函数可分为主函数main、标准库函数和_________。
8. 一个函数是由两部分组成的,即:________和函数体。
9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。
10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。
不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。
11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。
12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。
13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。
14. C程序的执行均是由执行_________开始。
15.函数体即为包含在{}内的部分。
它分为________和为完成功能任务由若干个C语句组成的执行部分。
16.C语言程序中一条简单语句是以________字符作为结束符的。
中南大学C 语言程序设计试卷
C 语言程序设计试卷一、单项选择题(每题1分,共20分)1. C语言规定:在一个源程序中,main函数的位置( )。
A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后2. 下面四个选项中,均是合法浮点数的选项是( )。
A. +1e+1 5e-9.4 03e2B. -.60 12e-4 -8e5C. 123e 1.2e-.4 +2e-1D. -e3 .8e-4 5.e-03. 若a=-14,b=3,则条件表达式a<b? a:b+1的值为()。
A. -14B. -13C. 3D. 44. 已知:int n,i=1,j=2;执行语句n=i<j?i++:j++;则i和j的值是( ).A. 1,2B. 1,3C. 2,2D. 2,35. 为了判断两个字符串s1和s2是否相等,应当使用( )A. if (s1==s2)B. if(s1=s2)C. if (strcmp(s1,s2))D. if (strcmp(s1,s2)==0)6. 以下正确的描述是( )。
A. 函数的定义可以嵌套,但函数的调用不可以嵌套。
B. 函数的定义不可以嵌套,但函数的调用可以嵌套。
C. 函数的定义和函数的调用均不可以嵌套。
D. 函数的定义和函数的调用均可以嵌套。
7. 在C语言中,下面对函数不正确的描述是( )。
A. 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。
B. 允许函数递归调用。
C. 函数形参的作用范围只是局限于所定义的函数内。
D. 子函数必须位于主函数之前。
8. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( )。
A. 该变量只在该复合语句中有效B. 该变量在该函数中有效C. 该变量在本程序范围内均有效D. 该变量为非法变量9. 以下正确的函数形式是( )。
A. double fun(int x,int y) { z=x+y;return z;}B. fun(int x,y) { int z; return z;}C. fun(x,y) { int x,y; double z; z=x+y; return z;}D. double fun( int x,int y) {double z; z=x+y; return z; }10. 以下程序的输出结果是( )。
C 作业及参考答案08级1 7章部分答案
1. 请编写程序输入三角形的三条边,判别它们能否形成三角形,若能,则判断是等边、 等腰、还是一般三角形。程序可多次判别,程序结束的条件自行定义。
【解答】未加入循环
#include <iostream.h> void main() { float a, b, c ;
cout << "a, b, c = " ; cin >> a >> b >> c ; if ( a+b > c && b+c > a && c+a > b ) { if ( a == b && b == c )
2. 编一程序显示如下图案,注意行数可由用户确定:
* *** ***** ******* *********
【解答】
#include <iostream.h> void main() { int i,j,k;
for( i=1; i<=5; i++ ) { for( k=1; k<=5-i; k++ ) cout << " ";
【解答】
#include <iostream.h> #include <string.h> #include <stdlib.h> class Book { public:
void setBook(char*,float,int); void borrow(); void restore(); void display();
//输入一行字符 //建立新结点 //插入表头
C语言程序设计复习题及参考答案
中南大学现代远程教育课程考试复习题及参考答案C语言程序设计一、单项选择题若以下各题所有库函数都可以合法使用,且变量定义如下:int m=5, i=3,j=2,*p, a=8,b=0;int arr[10]={0,1,2,3,4,5,6,7,8,9},td[ ][3]={1,2,3,4,5,6};float x=2.5,y=3.0;double z=0; long n=1;char c=‟A‟,ch[20]={‟a‟,‟b‟,‟c‟,‟\0‟,‟d‟,‟\0‟};struct student{ int num;char name[20];float score;struct student *next;}st1,st2,*ps;FILE *fp;1.若将3和10从键盘输入给变量a、x,输入语句为scanf(“a=%d,x=%f”,&a,&x);正确的键盘输入是(↙表回车):A a=3,x=10↙B 3,10↙C 3 10↙D 3,10.0↙2. 以下不是死循环的语句是:A for ( ;;y+=i++);B while(a) y+=i++ ;C do{ y+=i++}while (a>0);D for (b=0;(c=getchar()!=‟\n‟);)b++;3.若p=arr;正确的语句是:A *p=arr[10];B *p=arr[2*a];C p=arr[5];D p[i]=arr[0];4.若ps=&st1;则下面描述正确的是:A ps->num与st1->num等价。
B ps.num与st1.num等价。
C ps->num与num等价。
D ps->num与st1.num等价。
5.语句printf(“%d",a<i>j);的输出结果是:A 1B 0C 8 D都不对6.表达式 j/i+a%i+x 的值是:A 6B 4.5C 6.0D 5.57.表达式 b||a+i&&i<j 的值是:A 不确定B 0.0C 1D 08.若执行语句 a=b+=3*j+(int)x;则b的值为:A 1B 8C 0D 8.59. 若执行语句 a=b>j ?++i : i++;则a与i的值分别为:A 4 ,4B 3 ,4C 4 ,3D 3 ,310.if (a<b) if (c==d) x=8;else x=1;表示的逻辑关系是:8 a<b 且c=d 8 a<b 且c=dA x=B x=1 a<b 且c≠d 1 a≥b且c=d8 a<b 且c=d 8 a<b 且c=dC x=D x=1a≥b 1 a<b11.将字符串“Wan Ming”输入数组ch中,正确的是:A、scanf(“%s”,ch)B、scanf(“%s”,&ch)C、ch=“Wan Ming”D、gets(ch)12. 执行语句printf(“%c”,td[1][0]+‟A‟)的结果是:A、AB、BC、DD、E13.下列关于main()函数说法正确的是A、C语言程序总是从main()开始执行B、C语言程序可以没有main()函数C、C语言程序可以包含多个main()函数,但必须在不同的模块中D、C语言程序中main()函数不能有形式参数14.下列关于函数说法正确的是A、C语言程序的函数内还可定义其他的函数B、C语言程序的函数内不可再定义其他的函数C、C语言程序的函数不能自己调用自己D、C语言程序中只有同一源文件中的函数才能有调用与被调用关系15.若#define squ(x) x*x 执行语句printf(“result=%d”,squ(i+j));结果为:A、result=36B、36C、result=11D、1116. 若#define squ(x) (x)*(x) 执行语句printf(“result=%d”,squ(i+j));结果为:A、result=36B、result=17C、result=11D、result=25 17.C语言对宏命令叙述正确的是A、宏替换占用运行时间B、编译程序对宏命令的处理是在对源程序中其它成分编译之前进行的C、宏命令的处理是在程序执行时进行的D、宏命令的处理是在程序连接时进行的18. 若执行语句a- =a+=a*=10;a的值为:A、0B、-10C、-100D、10019.若执行语句p=arr; printf(“%d”,*(p+i));输出结果为A、0B、2C、3D、120.若执行printf(“%s”,ch);结果为:A、‟abc‟B、abcC、abcdD、abc\0d21.若对数组进行初始化:char carr[ ]={‟s‟,‟t‟,‟u‟,‟d‟,‟e‟,‟n‟,‟t‟},barr[ ]=”student”;则正确的是A、carr与barr长度相同B、carr比barr长C、carr与barr相同D、carr比barr短22.若有说明语句int (*p)[N];则p是A、N个指向整型变量的指针B、可指向有N个整型元素的一维数组的指针C、指向N个整型变量的函数指针D、有N个指针元素的一维指针数组23.若有说明语句int *f( );则函数f是A、f是一个指向整型变量的数组指针B、f返回一个整型数据C、f是一个指向整型变量的函数指针D、f返回一个整型指针,指向函数本身24.若函数f定义如下:void f(char *d, char *s){ while ( *d++=*s++);}函数f的功能是:A、串比较B、串复制C、求串长D、串反向25.表达式100+a+‟a‟+x*z的值的数据类型为A、intB、floatC、doubleD、char26.若要动态申请一个double型内存单元,正确的语句是A、pd=double malloc(sizeof(double))B、pd=( * double)malloc(sizeof(double))C、pd=double* malloc(sizeof(double))D、pd=(double*)malloc(sizeof(double)) 27.若要从键盘上输入67892到变量n中,正确的语句是A、scanf(“%lf”,&n);B、scanf(“%ld ”,&n);C、scanf(“%lf ”,n);D、scanf(“%d ”,&n);28.判断字符变量c是否不为小写英文字母的正确表达式是A、‟a‟<=c <=‟z‟B、c>= …a‟ && c<=‟z‟C、‟a‟≤c ≤‟z‟D、c<‟a‟ || c>‟z‟29.下列每组表达式被执行后,结果完全等价的是A、!(b= =0)与!(!b )B、b=(a=4,4*5) 与b=a=4,4*5C、float(i/j) 与float i/jD、0<x<100 与x>0 && x<10030.表达式(m&1)==(m%2)的值是A、0B、无法确定C、1D、以上都不对31.数学式ln2x+asin(60°)的C语言表达式是A、log(2*x)+a*sin(60)B、ln(2*x) +a*sin(60/180*3.14)C、ln(2*x) +a*sin(60)D、log(2*x)+a*sin(3.14*60/180)32. 要打开一个已经存在的非空文件file用于修改,则正确的语句是A、fopen(“file”,”r+”)B、fopen(“file”,”w”)C、fopen(“file”,”a+”)D、fopen(“file”,”r”)33. 若打开文件时发生错误,则f open()函数的返回值是A、1B、0C、不确定D、没有返回值34. 调用函数fseek(fp,-25L,2),其操作结果是A、文件位置指针从文件开始处前移25字节B、文件位置指针从文件结尾处后移25字节C、文件位置指针从文件当前位置处前移25字节D、文件位置指针从文件当前位置处后移25字节35. 能正确表示a和b同时为正或同时为负的逻辑表达式是A、(a>=0||b>=0)&&(a<0||b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a*b>0&&(a*b<=0)D、a*b>036. 若x=y=z=1;表达式(x--||++y)&&(z++)执行后,x,y,z的值分别为:A. 0,1,1B. 0,1,2C. 0,2,1D. 0,2,237.下列变量的初始化,不正确的是:A. int x,y=5;B. float x=y=3.5;C. char s[]=”a”;D. int a[][3]={{1},{},{0,9}};38. 可以代替while(x!=0)中的条件x!=0的是:A. xB. !xC. x==1D. x!=139.有关函数参数,下列说法不正确的是:A. 实参和形参是不同的变量;B. 实参可以将数据传给形参;C. 形参可以将数据传给实参;D. 实参和形参必须个数相等,类型一致。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南大学考试试卷
2008-- 2009学年 2 学期期末考试试题 A卷时间110分钟计算机程序设计基础课程48学时3学分考试形式:闭卷专业年级:2008级电气类总分 100分,占总评成绩 70 %
注:此页不作答题纸,请将答案写在答题纸上
一.写出下列语句、表达式、程序的运行结果(每空2分,共24分)1.表达式:2&&-2的值是
2.若x=1,y=3,z=2,则表达式:x= = ( y=z ) 执行完后,
x的值是y的值是
3.若b=6,d=5,则表达式:
(――b= = d+ +)? ――b:++d 的结果是
4.若b=6,d=5,则表达式:
(――b= = d+ +)? d++:――b 的结果是
表达式执行完后d的值为
5.若x=4,y=0,则循环体while(x=y) {x++;break;}
的执行次数是
6.若有定义int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
则*a[2]之值是
7.若a=2,b=3,x=3.5,y=2.5,则表达式(float)(a+b)/2+(int)x%(int)y 的值是
8.若有宏定义#define f(x) x*x
则当b=4时,执行f(b+3)的结果是
9.已知整形数x= —6,y=4,则表达式x%=y+1的值为
10.有程序
#include<stdio.h>
main( )
{ int a[5]={ 3,7,9,1,5},*p=a,*q=a;
printf(“%d,%d\n”,*p+3,*(q+2));
}
其运行结果为
二.下列各程序中每个程序各有2个错误,指出错误语句,写出对应正确语
句(每小题4分,共20分)
1.现已知a 、b 的值,求b a +的值,并当b a +不小于10时,将其输出。
# include<stdio.h>
main( )
{
float a, b;
a=2; b=3;
float c;
c=sqrt (a+b);
if(c>=10)
printf(“c=%f\n ”,c);
}
2.从键盘输入变量a 的值,已有关系式:)12(8
5-=
a b ,求出变量b 的值并输出。
main( )
{
float a,b;
scanf (“ %f ”,a);
b=5/8*(a-12);
printf (“b=%f \n ”,b);
}
3.用递归语句编函数计算6!
long f (int m)
{
long a;
if(m<0) printf(“data error!”);
else a=f(m -1)*m;
}
main( )
{
int n;
n=6;
printf(“%d!=%ld ”,n,f (n) );
} 4.已知矩阵a=⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡987654321,求该矩阵对角线元素之和。
main( )
{ int i;
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
for(i=1;i<=3;i++)
sum=sum+a[i][i];
printf(“sum=%d”,sum);
}
5.设整数x位于[1,10]区间内,依次输出2x的值(2、4、6、8,……,20)。
main( )
{ int x,y;
for(x=1;x<=10;x++)
y=2x;
printf(“%d”,y);
}
三.简答题(每小题6分,共18分)
1.对于同样的循环体和同样的循环判断条件而言,while语句和do-while 语句有什么区别?
2、试说明break语句和continue语句在循环程序应用上的区别。
3、若已有定义: int a[10]; int *p; p=a;
试说明*(p++)与*(++p)有什么区别?
四.下列各程序中,有若干条语句未被写出。
试根据题意,补全程序,每条横线填一个语句。
(每小题6分,共18分)
1.求[2,400]以内的最大的素数
f(int x)
{ int i,z;
z=0;
for(i=2; x++)
if(x%i= =0) { z=1; break; }
}
main( )
{ int i,max;
for(i=2;i<=400;i++)
if max = i;
printf(“最大的素数=%d\n”,max);
}
2.若某一自然数等于其所有真因子(因子不包括该数本身)之和,则称该数为完全数。
例如:6的真因子有:1、2、3;且6=1+2+3;则6为完全数。
试求[5,100]之间的最大完全数和完全数的个数
main()
{ int a, b, sum, num, max;
for(a=5;a<=100;a++)
{ sum=0;
for(b=1;b<a;b++)
{ if
sum=sum+b;
}
if
{ num=num+1;
max=a;
}
}
printf("the number is %d, the max value is %d\n", num, max);
}
3. 输入一个四位正整数,将其反向输出,并输出原来的数和变换后的数的乘积如:输入2104,反向输出4012,并输出二者的乘积2104×4012=8441248
main( )
{ int num, new, a, b, c, d;
long result;
printf(“请输入一个四位数\n”);
(1)
a=num/1000; /*a为千位上的数字*/
(2)/*b为百位上的数字*/
c=num/10%10; /*c为十位上的数字*/ d=num%10; /*d为个位上的数字*/
(3)/*new为反向输出的数*/ result=num*new /*result为两者的乘积*/
printf(“反向的四位数为%d:两个数的乘积为:%ld”, new, result);
}
五.阅读下列程序,写出运行结果(每小题6分,共12分)
1.#include<stdio.h>
int i=0;
static int j=1;
main( )
{ int k=1;
i++;j++;k++;
printf(“main i=%d j=%d k=%d\n”,i,j,k);
sub( );
sub( );
}
sub( )
{ int k=0;
static int x=1;
k++;x++;
printf(“sub i=%d j=%d k=%d x=%d ”,i,j,k,x);
}
运行结果是
2.main( )
{ int x[2][3]={4,7,2,5,6,1};
char *str[ ]={"thank","right","good"};
char **p; int i,j;
printf("%d,%d\n",*x[0],*(x[1]+2)/3);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf("%d,",*(x[i]+j));
p=str;
printf("%c,%s\n",*(*p+1),*(p+2));
}
运行结果是
六.程序设计框架题(本题8分)
假设要求你设计一个课表查询系统。
要求能查询任意时刻、任意班级、任意教室、任意教师。
当上述某些信息不存在时应给予提示。
你如何设计你的程序框架和结构?需要用到哪些数据结构类型?说明你的设计思路(不必写出源程序)。