上海大学程序设计基础(C)07-08春试题及答案
程序设计基础试题(附答案)
程序设计基础复习题一、单选1、一个完整的计算机系统应该包括()A、系统软件和应用软件B、计算机及其外部设备C、硬件系统和软件系统D、系统硬件和系统软件2、“裸机”的概念是指()A、正在进行设计还没有组装好的计算机B、已经组装好但还没有安装任何软件的计算机C、仅安装了操作系统的计算机系统D、安装了文字处理软件但没有安装专用数据处理系统的计算机3、世界上第一台电子数字计算机研制成功的时间是()A、1936年B、1946年C、1956年D、1970年4、CASE的含义是()A、计算机辅助设计B、计算机辅助制造C、计算机辅助教学D、计算机辅助软件工程5、当前广泛使用的微型计算机是()A、第一代B、第二代C、第三代D、第四代6、当代计算机的体系结构称为是()A、冯·诺依曼机B、非冯·诺依曼机C、图灵机D、比尔盖茨机7、硬盘是()A、输入设备B、输出设备C、存储设备D、计算设备8、下面4句话中,最准确的表述是()A、程序=算法+数据结构B、程序是使用编程语言实现算法C、程序的开发方法决定算法设计D、算法是程序设计中最关键的因素9、计算机能直接执行的语言是()A、机器语言B、汇编语言C、高级语言D、目标语言10、解释程序的功能是()A、将高级语言程序转换为目标程序B、将汇编语言程序转换为目标程序C、解释执行高级语言程序D、解释执行汇编语言程序11、下面4种程序设计语言中,不是面向对象式语言的是()A、JAVAB、Object PascalC、DelphiD、C12、不是C语言的基本数据类型是()A、intB、doubleC、charD、bool13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符()A、/B、%C、*D、++14、数据的逻辑结构分为()A、纯属结构和非线性结构B、顺序结构和非顺序结构C、树型结构和图型结构D、链式结构和顺序结构15、用链表表示纯属表的优点是()A、便于随机存取B、便于插入和删除操作C、花费的存储空间较顺序存储少D、元素的物理顺序与逻辑顺序相同16、栈的最主要特点是()A、先进先出B、先进后出C、两端进出D、一端进一端出17、下面4句结论只有一句是错误的,它是()A、二叉树是树B、二叉树的左右子树的位置可以颠倒C、可以使用二叉树的思想对数值进行排序D、可以采用链表方式存储二叉树18、螺旋模型中包括需求定义、风险分析、工程实惠和评审四个阶段,在开发过程中()A、每个周期都要包括这四个阶段B、每个周期可以包括不同的阶段C、在最后交付使用之前才进行评审D、在项目开始时才需要进行风险分析19、软件工程的出现主要是由于()A、程序设计方法学的影响B、其他工程科学的影响C、软件危机的出现D、计算机的发展20、在软件工程中,软件测试的目的是()A、试验性运行软件B、发现软件错误C、证明软件是正确的D、找出软件中全部错误二、填空题1、世界上最早的高级程序设计语言是()2、计算机按照工作原理进行分类可以分为()和()3、当前计算机的最基本原理采用的是()4、计算机存储器一般分为两级,它们是()和()5、高级语言程序的翻译有两种方式,一种是(),另一种是()6、数据的存储结构可以用()和()7、树型结构的主要特征是结点之间存在着一种层次的关系,数据元素之间的关系是()的关系。
程序设计基础试题(附答案)
程序设计基础复习题一、单项选择1、一个完好的计算机系统应当包含()A、系统软件和应用软件B、计算机及其外面设施C、硬件系统和软件系统D、系统硬件和系统软件2、“裸机”的观点是指()A、正在进行设计还没有组装好的计算机B、已经组装好但还没有安装任何软件的计算机C、仅安装了操作系统的计算机系统D、安装了文字办理软件但没有安装专用数据办理系统的计算机3、世界上第一台电子数字计算机研制成功的时间是()A、1936 年B、1946 年C、1956 年D、1970 年4、CASE的含义是()A、计算机协助设计B、计算机协助制造C、计算机协助教课D、计算机协助软件工程 5、目前宽泛使用的微型计算机是()A、第一代B、第二代C、第三代D、第四代6、今世计算机的系统构造称为是()A、冯·诺依曼机B、非冯·诺依曼机C、图灵机D、比尔盖茨机7、硬盘是()A、输入设施B、输出设施C、储存设施D、计算设施8、下边 4 句话中,最正确的表述是()A、程序 =算法 +数据构造B、程序是使用编程语言实现算法C、程序的开发方法决定算法设计D、算法是程序设计中最重点的要素9、计算机能直接履行的语言是()A、机器语言B、汇编语言C、高级语言D、目口号言10、解说程序的功能是()A、将高级语言程序变换为目标程序B、将汇编语言程序变换为目标程序C、解说履行高级语言程序D、解说履行汇编语言程序11、下边 4 种程序设计语言中,不是面向对象式语言的是()A、JAVAB、Object PascalC、DelphiD、C12、不是 C语言的基本数据种类是()A、intB、doubleC、charD、bool13、在 C 语言中,为了求两个整数相除以后获得的余数,能够使用运算符()A、/B、%C、*D、++14、数据的逻辑构造分为()A、纯属构造和非线性构造B、次序构造和非次序构造C、树型构造和图型构造D、链式构造温次序构造15、用链表表示纯属表的长处是()A、便于随机存取B、便于插入和删除操作C、花销的储存空间较次序储存少D、元素的物理次序与逻辑次序同样16、栈的最主要特色是()A、先进先出B、先进后出C、两头出入D、一端进一端出17、下边 4 句结论只有一句是错误的,它是()A、二叉树是树B、二叉树的左右子树的地点能够颠倒C、能够使用二叉树的思想对数值进行排序D、能够采纳链表方式储存二叉树18、螺旋模型中包含需求定义、风险剖析、工程优惠和评审四个阶段,在开发过程中() A、每个周期都要包含这四个阶段 B、每个周期能够包含不一样的阶段C、在最后交托使用以前才进行评审D、在项目开始时才需要进行风险剖析19、软件工程的出现主假如因为()A、程序设计方法学的影响B、其余工程科学的影响C、软件危机的出现D、计算机的发展20、在软件工程中,软件测试的目的是()A、试验性运转软件B、发现软件错误C、证明软件是正确的D、找出软件中所有错误二、填空题1、世界上最早的高级程序设计语言是()2、计算机依据工作原理进行分类能够分为()和()3、目前计算机的最基来源理采纳的是()4、计算机储存器一般分为两级,它们是()和()5、高级语言程序的翻译有两种方式,一种是(),另一种是()6、数据的储存构造能够用()和()7、树型构造的主要特色是结点之间存在着一种层次的关系,数据元素之间的关系是()的关系。
上海交通大学 2007-2008学年 程序设计基础(C++)期末考试试卷(附答案)
pt3=pt2;//A
strcpy(pt1, pt2); //B
strcpy(pt2, pt3);//C
cout<<pt2;//D
}
9下列定义或者声明语句哪个是不正确的(D)
A void* f(int a[], int n);
B void* (*f)(int a[], int n);
3写出运行结果:
#include<iostream>
using namespace std;
void foo( int &c){
static a=1;
c+=a++;
}
void main()
{
int a;
int &b=a;
a=10;
foo(a);
cout<<a<<endl;
foo(++b);
cout<<a<<endl;
A break语句只应用于循环体中
B continue语句只应用于循环体中
C break是无条件跳转语句,continue不是
D break和continue的跳转范围不够明确,容易产生问题
4.有如下定义语句:int a[]={1,2,3,4,5};,则对语句int *p=a;正确的描述是(B)。
A语句int *p=a;定义不正确
一、选择填空:(每题1分,共10分)
1.已知各变量的类型说明如下:
inta=1,b=2;
double x=1.42;
则以下不符合C++语言语法的表达式是(D)
上海大学C语言选择题
1.设有int i=0; 下列语句的运行结果是()。
while (i<=6){ printf("%d",i);i=i+1;}A) 0123456B) 012345C) 01234D) 01232.设有int n=60; 下列语句的运行结果是()。
switch (n/10){case 6: printf("@"); break;case 5: printf("#");default: printf("$");}A) @B) #$C) $D) @#$3.设有int i; 以下语句中,循环次数为100次的语句是()。
A) for ( i=0; i<=100; i++ )B) for ( i=0; i<100; i++ )C) for ( i=0; i<99; i++ )D) for ( i=1; i<99; i++ )4.以下一维数组定义中,正确的是()。
A) int a[5] = { 1,2,3,4,5 };B) int a[5] = 1,2,3,4,5;C) int a[1 to 5];D) int a[];5.设有int i=0; 下列语句的运行结果是()。
do {printf("%d",i);i=i+1;} while (i<=5)A) 0123456B) 012345C) 01234D) 01238.设有下列变量说明与函数说明,则合法的函数调用语句是()。
void swap( int *p, int *q );int x, y;A) swap( x, y );B) swap( *x, *y );C) swap( &x, &y );D) swap( p, q );9.以下字符串定义与赋值中,正确的是()。
A) char s[80]; s = {'A', 'B', 'C'};B) char s[80]; s = "ABC";C) char s[80] = {"A", "B", "C"};D) char s[80] = "ABC";10.以下选项中,合法的函数说明语句是()。
C语言题库上海大学
目录 1.*选择题,常量(命题/审题注:本行信息仅供命题/审题老师检查使用,学生不能看到,下同) ................................................. 2 2. *选择题,逻辑式............................................................................................................................................... ...................................... 2 3.*选择题,字符表达式............................................................................................................................................... ............................... 2 4.*选择题,语句辨析................................................................................................................................................ .................................. 2 5.*选择题,字符数组定义............................................................................................................................................... ........................... 2 6.*选择题,字符串+指针............................................................................................................................................... ............................. 2 7.*选择题,指针............................................................................................................................................... .......................................... 3 8.*选择题,函数声明................................................................................................................................................ .................................. 3 9.*选择题,结构体............................................................................................................................................... ...................................... 3 10.@选择题,文件............................................................................................................................................... ................................... 3 11.*选择题、变量............................................................................................................................................... ..................................... 3 12.*选择题、语句............................................................................................................................................... ..................................... 3 13.@同112-6选择题、链表............................................................................................................................................... .................... 4 14.*选择题、循环............................................................................................................................................... ..................................... 4 15.@选择题,表达式计算................................................................................................................................................ ....................... 4 16.@选择题;位运算............................................................................................................................................... (4)Point=3.7 ..................................................................................................................................... ......................................................................... 7 (2)程序 ................................................................................................................................................ ............................................................ 7 ####### ................................................................................................................................................ .................................................. 8 (3)程序 ................................................................................................................................................ (8)42=2*3*7 .................................................................................................................................... .......................................................................... 8 (4)程序 ................................................................................................................................................ (9)Max:a[3]=50 ............................................................................................................................... .......................................................................... 9 (5)程序 ................................................................................................................................................ ............................................................ 9 Line3: 2 9 8 .................................................................................................................................................. ......................................................... 9 (6)程序 ................................................................................................................................................ . (10)Can_I_help_you? ........................................................................................................................ ........................................................................ 10 (1)程序.......................................................................................................................................................................................................... 11 (2)程序............................................................................................................................................... ........................................................... 12 (3)程序.......................................................................................................................................................................................................... 12 二、基础填空题(10分,每小题2分) ............................................................................................................................................... ........................ 15 三、阅读程序(27分,每小题3分) ............................................................................................................................................... ............................. 15 四、程序填空(18分,每填空2分) ............................................................................................................................................... ............................ 21 一、基础题(21分,第1小题3分,其它每小题2分).............................................................................................................................................23 二、阅读程序(36分,每小题4分) ............................................................................................................................................... ............................. 24 三、改错程序(8分,每错误点2分) ............................................................................................................................................... ........................... 28 四、程序填空(12分,每填空2分) ............................................................................................................................................... .. (29)Sum=21 ....................................................................................................................................... . (157)A .................................................................................................................................................. .................................................................................157 Line Third, ........................................................................................................................................... ......................................................................... 158 Line First ............................................................................................................................................. . (158)SecondLiFirstWang ...................................................................................................................... ............................................................................... 213 2003 WangMin 950...................................................................................................................................................................................................... 221 2011学年春季学期-程序设计基础(C语言)-1/284因临时做的题目,可能有错误,若有错误和疑问,发邮件给我,yinhm@ ....................................................................................... 271 一、单项选择题(15分,每小题1分) ............................................................................................................................................... ...................... 271 一、单项选择题(16分,每小题1分) ...................................................................................................................................................................... 273 1. *选择题,常量(命题/审题注:本行信息仅供命题/审题老师检查使用,学生不能看到,下同)以下选项中正确的C语言常量是________12.34e5 0xEfGh 'XYZ' '\5A' 2. *选择题,逻辑式设int n; 对应“n为二位数(10至99)”的判断表达式是________ 10<=n && n<=9910<=n<=9910<=n || n<=99 10<=n, n<=99 3. *选择题,字符表达式设有定义char c;且c表示一个小写字母,结果为对应大写字母的表达式是________ c - 'a' +'A' c - a + A c - A + a c - 'A' + 'a' 4. *选择题,语句辨析在C语言中,根据一个表达式的值转向多个分支的语句是________ switch语句if-else语句case语句 return语句 5. *选择题,字符数组定义已知一个字符串的最大字符长度为8,要使用字符数组str存放该字符串,以下哪种定义是正确的________ char str[9]; char str[8]; char str; char str(9); 6. *选择题,字符串+指针设有定义char a[]="abcDEF",*p=a+3;则puts(p)的输出结果是________ DEF abcDEF bcDEF cDEF 2011学年春季学期-程序设计基础(C语言)-2/2847. *选择题,指针设有定义int m, n, *p;与语句“m=n;”等价的语句是________ p=&n; m=*p; p=&m; n=*p; p=*n; m=*p; p=*m; n=*p; 8. *选择题,函数声明以下选项中,合法的函数说明语句是________ void func( char*a, char b[]); void func( char a[], b[]); void func( char a[]; char *b); voidfunc( char *a, *b ); 9. *选择题,结构体设有以下结构体定义及初始化,表达式p->score的结果是________ struct node { int num; float score; } stu[2]={101,91.5,102,92.5},*p=stu; 91.5 101 102 92.5 10.@选择题,文件设有定义FILE *fp; 将整数n写到fp文件的语句是________ fprintf( fp, "%d", n ); fp = fopen( "file.txt", "w" ); fread( &n, sizeof(int), 1, fp ); fclose(fp) 11. *选择题、变量把x,y定义成float类型,并赋同一初值3.14,正确的是________ float x=3.14,y=x; float x,y=3.14; float x,y=2*3.14; float x=y=3.14; 12. *选择题、语句以下________语句只能包含在循环结构中,而不能单独出现 continue goto return if 2011学年春季学期-程序设计基础(C语言)-3/28413. @同112-6选择题、链表设有下述程序段及其注释,函数func的功能是________ struct node /* 链表的节点定义 */ { int num; float score; struct node *next; /* next成员指向下一个结点 */ }; struct node *func(struct node *head) { /* head为链表的头指针*/ struct node *p; p=(struct node *)malloc(sizeof(struct node)); p->next = head; head=p; return head; } 在链表头插入一个结点在链表尾插入一个结点删除链表第一个结点删除链表最后一个结点 14. *选择题、循环语句“while(!x)…”等价于________ whil e(x==0)… while(x!=1)… while(x!=0)… while(x==1)… 15. @选择题,表达式计算若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是________ 4.5 2.5 3.5 5.5 16. @选择题;位运算如图所示,计算机使用16位二进制表示文件的修改日期,其中最低5位二进制表示日期(取值1至31),中间4位二进制表示月份(取值1至12),最高7位二进制表示年份(取值0至127,对应1980年至2107年)。
2007级程序设计基础(一)期末考试参考答案A卷
2007级《程序设计基础(一)》期末考试参考答案(A卷)一、单选题:(每题1分,共20分)1. D2. A3. C4. B5. A6. C7. D8. A9. D10. B11. B12. B13. A14. B15. C16. B17.C 18. D19. C 20. C二、程序阅读题:(每题4分,共24分)1.j=82. 2 4 0 8 103.9*7*8*5*3*4.before swap a[0]=5,a[1]=7after swap a[0]=5,a[1]=75.61231116. 0 3 6 91 4 7 102 5 8 113 6 9 12三、改错题:(每题5分,共15分)1.#include <stdio.h> -----------1分void fun(char s[],char c); -----------1分void fun(char s[],char c) -----------1分{int i,j;for(i=j=0;s[i];i++)if(s[i]!= c)s[j++]=s[i]; ----------1分s[j]='\0'; ----------1分}2.#include <stdio.h>int plus(int ,int); ----------0.5分void main(){int x,y,z; ----------1分scanf("%d,%d",&x,&y); ----------1分z=plus(x,y); ----------0.5分printf("The sum is %d",z);}int plus(int a,int b) ----------1分{int c; ----------1分c=a+b;return c;}3.#include <stdio.h>int fun(float x[],int n){int i,c=0; ----------1分float xn=0; ----------1分for(i=0;i<n;i++)xn=xn+x[i]/n; ----------1分printf("average=%.2f\n",xn); ----------1分for(i=0;i<n;i++)if(x[i]>=xn) ----------1分c++;return c;}四、程序填空:(每空2 分,共16分)⑴flag*1.0/k ⑵flag*=-1(或flag=-flag)⑶top<=bottom ⑷(top+bottom)/2 ⑸key>list[mid] ⑹return mid (或index=mid;break;)⑺x ⑻x*(1-px(x,n-1))五、程序设计题:(第1小题5分,第2小题8分,第3小题12分,共25分)1.#include <stdio.h>void main(){int x,max;printf("input a group of integer end of 0:\n");scanf("%d",&x); ----------1分max=x; ----------1分while(x!=0) ----------1分{scanf("%d",&x);if(max<x) ----------1分max=x;}printf("max=%d\n",max); ----------1分}2.#include <stdio.h>void main(){int i,j,k; ----------1分for(i=1;i<100;i++) ----------1分for(j=1;j<10;j++) ----------2分{k=100-i-j; ----------1分if(i*0.4+j*4+k*0.2==40&&k>0) ----------2分printf("苹果%3d,西瓜%3d,梨%3d\n",i,j,k); ----------1分}}3.#include <stdio.h>#define N 10void sort(int [],int); ----------0.5分void insert(int [],int,int); ----------0.5分void main(){int i,key,a[N+1];for(i=0;i<N;i++) ----------1分scanf("%d",&a[i]);sort(a,N); ----------0.5分printf("排序后:\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n请输入要插入的数:");scanf("%d",&key);insert(a,key,N+1); ----------0.5分printf("\n插入后:\n");for(i=0;i<N+1;i++) ----------1分printf("%5d",a[i]);}void sort(int a[],int n){int i,j,temp;for(i=0;i<n-1;i++) ----------1分for(j=0;j<n-1-i;j++) ----------1分if(a[j]>a[j+1]) ----------1分{temp=a[j]; ----------1分a[j]=a[j+1];a[j+1]=temp;}}void insert(int a[],int k,int n){int i,j;for(i=0;i<n-1;i++) ----------1分if(k<a[i]) ----------1分break;for(j=n-1;j>i;j--) ----------1分a[j]=a[j-1];a[i]=k; ----------1分}。
C程序设计07-08第二学期A答案
(勤奋、求是、创新、奉献)2007~2008学年第二学期考查试卷主考教师:章颖芳《程序设计基础(C)》课程试卷A参考答案(本卷考试时间90 分钟)题号一二三四五六七八九十总得分题分2020101040100得分一、单项选择题(每小题 2 分,共20 分)1-10:DCCBC DBABA二、填空题(每小题 2 分,共20 分)1.c>=’A’ && c<=’Z’2.a>=b && b>=c3.num%2==04. 35.06. 27.48.y = f =9.7,10.18, 20三、程序阅读题(每题5分,共10分)1.13, 33, 12, 332.0四、程序填空题(每题 5 分,共10 分)1.int n;sum=0;sum+=i;2.for(i=0; i<n; i++)scanf("%d", &a[i]);a[index]=a[k]for(i=0; i<n; i++)printf("%d ", a[i]);五、编程题( 每题10分,共40 分)1. 对任意输入的 x ,用下式计算并打印出 y 的值。
⎪⎩⎪⎨⎧>-+<=<+-<=-=111010152x x x x x e x x y x#include<> #include<> int main(){ float x,y; printf("Enter x:"); scanf("%f",&x); if(x<=0) y= 5*x - 1; else if(x<=1) y= exp(x) - x +1; else y= x*x + x - 1; printf("y=%f\n",y);}2. 编写程序。
输入一个正整数n (n>=1),计算 ++++++116957453321的前n 项之和,输出时保留3位小数。
国家开放大学《程序设计基础》复习题及参考答案
国家开放大学期末考试程序设计基础大作业2022年3月一、题目(一)单选题(每题2分,共30分)1.现代计算机的内部对于数据采用的表示形式是()。
A.二进制B.八进制C.十进制D.十六进制2.当代计算机的体系结构称为"冯·诺依曼"体系,冯·诺依曼机的主要思想之一是()。
A.程序存储B.设计机器语言C.自动执行程序D.存储器为核心3.现代电子计算机诞生的理论基础是()。
A.图灵机B.图灵测试C.冯·诺依曼机D.邱奇论题4.CPU主要包括()。
A.运算器、控制器和寄存器B.运算器、控制器和存储器C.控制器D.运算器和存储器5.汇编程序的任务是()。
A.将汇编语言编写的程序转换为目标程序试卷号:程序设计基础大作业第1页(共5页)B.将汇编语言编写的程序转换为可执行程序C.将高级语言编写的程序转换为汇编语言程序D.将高级语言编写的程序转换为可执行程序6.C语言是()。
A.机器语言B.汇编语言C.高级语言D.目标语言7.在C语言中,字符串常量的定界符是()。
A.空格B.单引号C.双引号D.方括号8.在C语言中,不合法的int型常量是()。
A.32767B.0678C.0XABCD.32768L9.JAVA语言的类别是()。
A.面向过程的程序设计语言B.面向问题的程序设计语言C.面向对象的程序设计语言D.面向硬件的程序设计语言10.以下所列语句中,合法的语句是()。
A.a=1,b=1B.++a;C.a=a+1=5;D.y=int(a).11.栈的逻辑结构是()。
A集合B线性结构C树型结构D图型结构12.在软件需求完全确定的情况下,应该采用的软件开发模型是()。
试卷号:程序设计基础大作业第2页(共5页)A.瀑布模型B.渐进式开发模型C.原型模型D.螺旋模型13.若按照一定的顺序依次访问树中的每一个结点,而且每个结点只被访问一次,则称这样的操作为___。
A排序B查找C遍历D建立14.在软件系统进行组装测试的时候发现错误,则针对被发现的错误,可以判断在整个软件开发过程最可能出现错误的阶段是()。
程序设计基础教程(c语言版)课后答案
z习题解答目录1.2 习题解答 (3)1.2.1 选择题 (3)1.2.2 填空题 (3)1.2.3 编程题 (4)2.2 习题解答 (5)2.2.1 选择题 (5)2.2.2 填空题 (7)2.2.3 编程题 (8)3.2 习题解答 (11)3.2.1 选择题 (11)3.2.2 填空题 (12)3.2.3 编程题 (12)4.2 习题解答 (15)4.2.1 选择题 (15)4.2.2 填空题 (17)4.2.3 编程题 (18)5.2 习题解答 (29)5.2.1 选择题 (29)5.2.2 填空题 (31)5.2.3 编程题 (33)6.2 习题解答 (37)6.2.1 选择题 (37)6.2.2 填空题 (41)6.2.3 编程题 (43)7.2 习题解答 (67)7.2.1 选择题 (67)7.2.2 填空题 (68)7.2.3 编程题 (68)21.2 习题解答1.2.1 选择题1、B【分析】在一个C程序中必须有且只能有一个main函数,而且main函数可以在任何地方出现.2、C【分析】C 语言中合法以的标识符组成为:字母,数字,下划线,且数字不能打头,亦不能为关键字。
A中,-sub 不合法。
B 中4d不合法。
D 中void 为关键字。
3、【分析】4、C【分析】转义字符中,第一个\”输出“,第二\\输出\,第三个\b退格,把前一个\去掉了,第四个\’输出’,第五个\t跳格,第六个\”输出”,第七个\n输出换行。
5、C【分析】本题将10进制17,分别按8、16进制输出。
8的进制21=2*8+1*1=17(10, 16制11=1*16+1*1=17(10)1.2.2 填空题1、主【分析】一个C源程序中至少包括一个主函数,其他函数没有限制。
2、双引号。
【分析】两种写法都是允许的,使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找.使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。
上海交大程序设计试题样题及参考答案
程序设计试题样题及参考答案一.选择题1. 若用数组名作为函数调用的实参,传递给形参的是A。
A.数组的第一个元素的地址。
B.数组第一个元素的值。
C.数组全部元素的地址。
D.数组全部元素的值。
2. 在C程序中,main() 的位置C。
A. 必须作为第一个函数。
B.必须作为最后一个函数。
C.可以任意。
D.必须放在它调用的函数之后。
3、下列程序中,编译不会出错的语句是 A 。
#include <iostream.h>class Base{public:Base(){}Base(int i) { data = i; }private:int data;};class Derived: public Base{public:Derived():Base(0) {}Derived(int x):Base(x){}};int main(){Derived d1(1);Base *pb,b1;pb = &d1; //Ad1 = b1; //BBase &refB = d1;Derived d2 = *pb; //CDerived &refD = refB; //Dreturn 0;}答案:A注释:公有继承时,派生类是基类的子类型,反之则不成立。
具有子类型关系的基类和派生类的对象之间满足如下赋值兼容规则: 派生类对象的地址可以赋值给指向基类的指针;♦派生类的对象可以初始化基类的引用;派生类的对象可以赋值给基类的对象,即用派生类对象中从基类继承来的成员,逐个赋值给基类对象的成员。
4、判断fun,Y3::fun,Z2::fun中的各条语句是正确/错误。
class X{public:int a;};class Y1 : public X{ };class Y2 : protected X{ };class Y3 : private X{private:void fun(Y1 *py1,Y2 *py2,Y3 *py3);};class Z2 : public Y2{private:void fun(Y1 *py1,Y2 *py2,Y3 *py3);};void fun(Y1 *py1,Y2 *py2,Y3 *py3){py1->a = 7; //①py2->a = 7; //②py3->a = 7; //③}void Y3::fun(Y1 *py1,Y2 *py2,Y3 *py3){py1->a = 7; //④py2->a = 7; //⑤py3->a = 7; //⑥}void Z2::fun(Y1 *py1,Y2 *py2,Y3 *py3){ py1->a = 7; //⑦py2->a = 7; //⑧py3->a = 7; //⑨}答案:①正确②错误③错误④正确⑤错误⑥正确⑦正确⑧错误⑨错误注释:♦派生类Y1从基类X公有继承,基类成员a在Y1中仍然是公有成员,所以Y1类型的指针py1可以可以访问a成员,因此①④⑦正确。
上海交大C 程序设计试题集(含答案).
程序设计试题集一、单项选择题1.1.定义一个具有10个元素的整型数组,应当使用代码是A.int a[10]; B.int a[2, 5]; C.int a[]; D.int *a[10];1.2.设int a = 8, b = 7, c = 6, x = 1;执行以下语句后x的值是if (a > 6) if (b > 7) if (c > 8) x = 2; else x = 3;A.0 B.1 C.2 D.31.3.下列代码中,正确的数组定义是① int a[ ] = {“string”}; ② int a[5] = {0, 1, 2, 3, 4, 5};③ char a = {“string”}; ④ char a[ ] = {0, 1, 2, 3, 4, 5};A.① B.② C.③ D.④1.4.字符串”abc\x43\\\np\102q”的长度是A.9 B.12 C.13 D.171.5.执行下列程序后,输出的结果是#define M(a, b) (a) > (b)?(a)+(b):(a)-(b)void main(){ int i = 10, j = 15; printf(“%d\n”, 10*M(i, j)); }A.10 B.25 C.250 D.-501.6.执行下列程序后,输出的结果是#define M(a, b) (a) > (b)?(a):(b)void main(){ int i = 10, j = 5; printf(“%d\n”, M(i, j)*10); }A.10 B.5 C.100 D.1501.7.计算立方数时,不可能引起二义性的宏定义是A. #define S(x) x*x*x B.#define S(x) (x)*(x)*(x)C.#define S(x) (x*x*x) D.#define S(x) ((x)*(x) *(x))1.8.下列代码中,正确的是A. char a[3][ ] = {‘abc’, ‘1’};B. char a[ ][3] = {‘abc’, ‘1’};C. char a[3][ ] = {“ab”, “12”};D. char a[ ][3] = {“ab”, “12”};1.9.设char str1[10] = “ABCDE”, str2[10] = “xyzuvw”;则执行以下语句后的输出结果是printf(“%d”, strlen(strcpy(str1, str2)));A.12 B.11 C.8 D.61.10.以只写方式打开一个二进制文件,应选择的使用方式是A.”a+” B.”w+” C.”rb” D.”wb”1.11.设int x = 8, y, z; 执行y = z = x--; x = y == z后,变量x的值是A.0 B.1 C.8 D.91.12.设变量m ,n ,a ,b ,c ,d均为0,执行(m = a==b)||(n=c==d)后,m ,n的值是A. 0 ,0B. 0 ,1C. 1 ,0D. 1 ,11.13.设int x[ ] = {2, 6, 5, 7, 9, 15, 12}, *p = x;则不能正确引用数组元素的表达式是A.*(p--) B.*(--p) C.*(p++) D.*(++p)1.14.根据变量定义“static int b[5];”,b[4]的值是。
程序设计基础练习题全部有答案版
int a=1,b=2;
5.
printf(
14.0
%4.1f\n
B、31.5
,S(a+b)); 3.5*a+b*a+b
C、
7.5
D、10.5
F面程序运行后输出的结果
#i nclude"stdio.h"
#defi ne MIN(x,y) (x)<(y)?(x):(y)
mai n()
int a,b,c;
逻辑表达式
任意表达式
以下程序的输出是(D)
mai n()
{int i,j,k,a=3,b=2;
j=a++;k=b;
执行下面的程序:
mai n() {int x;
sea nf("%d", &x);
if (x++>5) prin tf("%d\n", x);
else prin tf("%d\n", -x);
prin tf("%d",k),k--;
prin tf("k=%d\n",k);
prin tf("\n");
}
A0B、1C、2D、-2
8.下面程序的输出为(B)
#in clude<stdio.h> mai n()
{int i,j,x=0;
for(i=0;i<2;i++)
数组中的所有元素赋值,则在下划线处应填入的是(
C、被包含的檔不一定以.h作为后缀
D、在以下定义中C R是称为“宏名”的标识符
#define fc4566CR
程序设计基本(C)试卷后解析及操纵题08-10年秋季
#define tri(a,b,c) a*a+b*b-c*c 请写出语句:printf(“ tri=%d”, tri(3,4,5)!=0); 执行后的输出结果。 5.若有以下的四条变量定义及初始化语句,请选出其中正确的定 义项:
(A) char *p=“222”; (B) char a=‘abc’;
} } 输出:?
(4)程序 #include<stdio.h> void change(char *); void main(void) {
char str[]="abcdEFG"; change(str); printf(“%s\n”,str); } void change(char *s) { while(*s) {
(081)上海大学 2008-2009 年秋季学期试卷 2008.11
课程名:程序设计基础(C) 课程号:00863006 学分:5
一、基础题(21 分,第 1 小题 1 分,其它每小题 2 分)
1.设有定义 char a=’c’; 下列语句片段 putchar(a); putchar(‘a’); 将 输出什么?
}
四、程序填空(12 分,每填空 2 分)
阅读下列问题描述和相应的 C 程序,把应填入其中 (n) 处的 内容写在答卷纸的对应栏内。 (1) 下列程序的功能为:计算 1020 个西瓜几天后能卖完(第一天 卖了一半多两个,以后每天卖剩的一半多两个)。 #include <stdio.h> main() {
int day,x1,x2; day=0; x1=1020; while( (1) ) {
x2= (2) ; x1=x2; day++; } printf(“day=%d\n”,day); }
程序设计基础习题及参考答案
程序设计基础习题及参考答案习题及参考答案1 单项选择题:(1)下列哪个符号是合法的变量名? ( )A .VB123B .AbsC .99JiD .x\y 答案:选择A 。
其他的:Abs 是Visual Basic 的关键字,99Ji 以数字开头,x\y 使用了整除运算符”\”,都是非法的。
(2)Visual Basic 中的数据也可以以十六进制或八进制表示,十六进制数据以()符号开头,八进制数据以()符号开头。
A.$EB.$HC.&OD.&H 答案:D C(3)如果X 是一个正实数,对X 的第三位小数四舍五入的表达式是( )A .0.01*Int(x+0.005) B. 0.01*Int(100*(x+0.005)) C.0.01*Int(100*(x+0.05)) D. 0.01*Int(x+0.05) 答案:选择B 。
x 是一个正实数,要保留n 位小数,第n+1位四舍五入的数字公式是: Int(x*10n+0.5)/10n因此,本题应该选择B 。
(4)数学式子10sin25°写成Visual Basic 表达式是 ( )A .10Sin25B .10* Sin(25)C .10*Sin(25°)D .10*Sin(25*3.14/180) 答案:选择D 。
其他的选项:A 、C 属于语法错误,B 中Sin(25)计算的是25弧度的正弦值,而不是sin25°的值,要将度数转换为弧度的公式是:弧度=度数*180/ 。
(5)下列哪组语句可以将变量A 、B 的值互换? ( )A .A=B:B=A B. A=A+B:B=A-B:A=A-B C. A=C:C=B:B=A D. A=(A+B)/2:B=(A-B)/2 答案:选择B 。
应该对每个选项内的赋值语句进行分析,判断其运行结果。
下面仅对B 选项的三条语句的作用分析如下:◆ A=A+B ‘将变量A 和变量B 相加后赋给变量A ,此时A 中存放的是和数◆ B=A-B ‘由于A 中存放的是和数,A-B 的值就是原先A 中的值,赋给变量B ,B 的值就是原先A 中的值◆ A=A-B ‘由于A 中存放的是和数,B 的值就是原先A 中的值,A-B 的值就是原先B中的值,赋给变量A ,A 的值就是原先B 中的值。
c语言,04-05春试卷及答案
(043)上海大学2004-2005年春季学期试卷2005.6课程名:程序设计基础(C) 学分: 5 学号:姓名:学院/教师:考生须知:1.试卷和答题纸上的“学号、姓名、学院、教师”都要填上;2.所有答题内容都写在答卷纸上,交卷时将试卷和答卷纸一起交上;3.不遵守上述要求者考试成绩将为零分。
4.本卷考试的得分为卷面分,电脑上机考试(另行安排)的得分为上机分,考试成绩为卷面分与上机分的和。
一、基础题(20分,每小题2分)1.定义int x=42,y=13;写出y+=2*(x++);执行后各变量的值。
2.设a=b=5;分别判断表达式的真假:6>a>4与b++==6。
3.分别计算字符串的长度:“Computer”与“\\abc\\123\nmop”。
4.分别计算表达式的值:43 & 38 与(43 ^ 38) << 2。
5.设n为正整数,写出判断表达式:n的个位数与百位数相等。
6.设x为浮点数,写出表达式:浮点数x的小数部分。
7.假设对n(n>0)个学生按下列方法进行分班:每班k(k>0)个学生,最后一个班若不足k人也单独编成一个班。
写出表达式表示所编班的个数。
8.定义char ch; 写出语句:如果ch为小写字母则将ch转换为大写,否则ch不变。
9.定义int a[10]; 写出语句片段:输入a数组中的10个整数。
10.定义char *pc[]={ "Shanghai", "Beijing", "Guangzhou" };写出语句片段:输出pc数组中的所有字符串,每字符串一行。
二、阅读程序(30分,每小题3分)仔细阅读下列程序,将各程序的运行结果写在答卷纸上。
(1)程序#include <stdio.h>main(){int m,n,k,i;scanf( "%d%d", &m, &n );if ( m < n )k = 1;elsek = -1;for ( i = m; i != n; i+=k )printf( "%d ", i );}输入:22 16输出:?(2)程序#include <stdio.h>main(){int m, n = 0;for ( m = 1; m <= 6; m++ ){switch( m ){case 4:case 6:case 9:case 11:n = 30;break;case 2: n = 28;break;default:n = 31;break;}printf( "%d,", n );}}输出:?(3)程序#include <stdio.h>int isprime(int n){int i;for ( i = 2; i < n; i++ )if ( n%i == 0 )return 0;return 1;}void testfunc( int n ){int i;for ( i = 2; i < n; i++ )if ( isprime(i) && isprime(n-i) )break;printf( "%2d = %2d + %2d\n", n, i, n-i ); }main(){int n;for ( n = 10; n <= 14; n += 2 )testfunc( n );}输出:?(4)程序#include <stdio.h>main(){char a[5][6];int i, j;for ( i = 0; i < 5; i++ )for ( j = 0; j < 5; j++ )a[i][j] = '*';for ( i = 0; i < 5; i++ ){a[i][i] = '#';a[i][4-i] = '@';a[i][5] = '\0';}for ( i = 0; i < 5; i++ )puts( a[i] );}输出:?(5)程序#include <stdio.h>main(){int a[8] = { 0, 8, 16, 30, 40, 50, 60, 70 };int n = 2, *p = &a[1];n += *(p++);printf( "%d, ", n );n *= ++(*p);printf( "%d, ", n );n -= (*(++p))--;printf( "%d\n", n );}输出:?(6)程序#include <stdio.h>int func( int x ){static int dd = 1;dd += x;if ( x == 0 )dd = 0;return dd;}main(){printf( "1: %d\n", func(15) );func(0);printf( "2: %d\n", func(28) );printf( "3: %d\n", func(37) );}输出:?(7)程序#include <stdio.h>void sort( int a[], int n ){int j, t;if ( n <= 1 )return;sort( a+1, n-1 );for ( j = 0; j < n-1; j++ )if ( a[j] < a[j+1] ){t = a[j];a[j] = a[j+1];a[j+1] = t;}}main(){int x[] = { 33, 77, 55, 11, 99 };int i;sort( x, 5 );for ( i = 0; i < 5; i++ )printf( "%4d", x[i] );}输出:?(8)程序#include <stdio.h>main(){char a[81], b[81], *p, *q=b;gets( a );for ( p=a; *p!='\0'; p++ )if ( *p >= 'A' && *p <= 'Z' )*(q++) = *p;else if ( *p >= 'a' && *p <= 'z' )*(q++) = *p - 'a' + 'A';*(q++) = '\0';puts( b );}输入:1i2aM, (w)A-N-G.输出:?(9)程序#include <stdio.h>struct data{ int x1, x2; };float aver( struct data a[], int n ){float sum = 0;int i;for ( i = 0; i < n; i++ )sum += a[i].x2;return (float)sum / n;}struct data *find( struct data a[], int n, int d ) {int i;for ( i = 0; i < n; i++ )if ( a[i].x1 == d )return &a[i];return NULL;}main(){struct data a[] ={{101,200},{102,300},{103,400},{104,103}};struct data *p;float ave;ave = aver( a, 4 );p = find( a, 4, 103 );printf( "%4.2f, %d, %d\n", ave, p->x1, p->x2 );}输出:?(10)程序#include <stdio.h>main(){FILE *fp;int a[10] = {10,20,30,40,50,90,80,70,60,50};int i;fp = fopen( "test.txt", "w" );for ( i = 0; i < 10; i++ )fprintf( fp, "%d ", a[i] );fclose( fp );fp = fopen( "test.txt", "r" );for ( i = 0; i < 4; i++ )fscanf( fp, "%d ", &a[i+3] );for ( i = 0; i < 3; i++ )fscanf( fp, "%d ", &a[i+1] );fclose( fp );for ( i = 0; i < 6; i++ )printf( "%d ", a[i] );}假设文件操作总是成功的。
上海交通大学 2007-2008学年 程序设计基础(C++)期末考试试卷(附答案)
一、选择填空:(每题1分,共10分)1.已知各变量的类型说明如下:int a=1,b=2;double x=1。
42;则以下不符合C++语言语法的表达式是( D)A.b=x>a?3:4;B.x+=b;C.x=(a=2, a+b);D.x%3;2.下面的循环体哪个执行的次数与其他不同(C )A for(i=0; i<10; i++){cout<〈i<<" "; }B for(i=10; i>=1;i——){cout〈<i〈<” ";}C i=10; do { cout<<i<〈" "; }while(i——>0);D i=0;while(++i<=10){cout<〈i<<” ";}3.C++语言的跳转语句中,对于break和continue说法正确的是(B ):A break语句只应用于循环体中B continue语句只应用于循环体中C break是无条件跳转语句,continue不是D break和continue的跳转范围不够明确,容易产生问题4.有如下定义语句:int a[]={1,2,3,4,5};,则对语句int *p=a;正确的描述是(B).A 语句int *p=a;定义不正确B 语句int *p=a;初始化变量p,使其指向数组对象a的第一个元素C 语句int *p=a;是把a[0]的值赋给变量pD 语句int *p=a; 是把a[1]的值赋给变量p5.当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( B ).A ios::in|ios::appB ios::out|ios::truncC ios::in | ios::outD 没有6 若有以下定义和语句,则不能合法表示a数组元素的是:( D ) char a[]="abcdefg”;int *p=a;A p[7]B a[p—a]C *aD a[8]7 以下所列的各函数原型中,正确的是:(C)A void play(int a,b);B void* play(int a, int b=1, double c);C int* play(int *a,int *b[]);D int* play(int a;int b[ ]);8 下列程序中错误的语句是:(B)#include<iostream>#include〈cstring〉using namespace std;main(){char *pt1=”1234";char pt2[]=”12";char *pt3="34";pt3=pt2; //Astrcpy(pt1,pt2);//Bstrcpy(pt2, pt3); //Ccout〈〈pt2; //D}9 下列定义或者声明语句哪个是不正确的(D )A void* f(int a[],int n);B void*(*f)(int a[], int n);C void*(*f[10])(int a[],int n );D void f (int a[],int n)[10];10 下列语句正确的是(A )A char a[2]={’a'};B char 3a='\0’;C char a[]=’ab c’;D char a= ”\0”;二、程序理解:(每题4分,共32分)1 写出下面函数的功能void foo(char* fname)//可把以fname所指字符串作为文件标识符的文件称为fname文件,//假定该文件中保存着一批字符串,每个字符串的长度均小于20。
大学C#程序设计试卷及答案
诚信应考 考出水平 考出风格2007 — 2008学年第 1 学期期末考试试卷 《 C#程序设计 》 开课单位: ;考试形式:闭卷;考试时间:2008年1月8日; 所需时间:120分钟注意:请将答案写到试题后的答题纸上,写在试题上一律不给分! 一.判断题(本大题共8题,每题2分,共16分。
) 1. C#中类不可以多重继承而接口可以。
2. 应用程序项目中所有Web 窗体页的代码文件运行时都被编译成.EXE 文件。
3. XML 是一种简单、与平台无关并被广泛采用的标准。
4. .NET 编译器将源程序编译出的.EXE 文件是CPU 能直接执行的机器代码。
5. 中,使用验证控件来验证用户输入,要求用户必须输入该项,则适用RequiredFieldV alidator 控件。
6. C#中扩充类继承了基类所有的元素,包括构造函数与析构函数。
7. 中DataSet 是不依赖于数据库的独立数据集,即使数据连接断开,DataSet 依然是可用的。
8. C#中可以使用const 关键字定义一个常量,定义时必须进行初始化。
二.选择题(本大题共10题,每题2分,共20分。
) 1. 下列选项中,( )是引用类型。
A. enum 类型 B. struct 类型 C. string 类型 D. int 类型 2. C#的数据类型有( )A. 值类型和调用类型;B. 值类型和引用类型;C. 引用类型和关系类型;D. 关系类型和调用类型;3. 下列关于构造函数的描述正确的是()A. 构造函数可以声明返回类型。
B. 构造函数不可以用private修饰C. 构造函数必须与类名相同D. 构造函数不能带参数4. 有如下数组定义:int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}};则myArray3[2][2]的值是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(073)上海大学2007-2008年春季学期试卷2008.6课程名:程序设计基础(C) 课程号:00863006 学分:5应试人声明:我保证遵守《上海大学学生手册》中的《上海大学考场规则》,如有考试违纪、作弊行为,愿意接受《上海大学学生考试违纪、作弊行为界定及处分规定》的纪律处分。
学号:姓名:学院/教师:考生须知:1.试卷和答题纸上的”学号、姓名、学院、教师”都要填上;2.所有答题内容都写在答卷纸上,交卷时将试卷和答卷纸一起交上;3.不遵守上述要求者考试成绩将为零分。
4.本卷考试的得分为卷面分,电脑上机考试(另行安排)的得分为上机分,考试成绩为卷面分与上机分之和。
一、基础题(21分,第1小题3分,其它每小题2分)1.以下所有项中哪三项是合法的C语言变量名:_int、a[i]、*p、long、Sum、a2.1、“abc”、b12、3s。
2.设a和b为正整数,分别写出判断表达式:a和b都不是偶数;a和b至少有一个是偶数。
3.计算位运算表达式的值,结果用十进制描述:100^200、100&36。
4.定义char s[]=“12345AbCdE”;分别写出printf(“%s”, &s[4]); 和printf(“%c”, *(s+7)+1); 的结果。
5.定义int x=111, y=112; 写出执行语句x+=x==y--?--y:++x; 后x 和y的值。
6.写出printf(“%d,%u,%x,%o”, -1,-1,-1,-1); 的结果。
7.定义int i=0; 写出执行语句while(i++<10); 后的i的值。
8.定义int a[]={1,3,5,7,9,11,13,15,17,19}, *p=&a[3]; 分别计算表达式(&a[8] - &p[-2]) 和(*(a+7)-*(p+2)) 的值。
9.定义char s[20]=“string\061\nstring\062”;写出printf(“%d”, strlen(s)); 和printf(“%d”, sizeof(s)); 的结果(strlen( ) 为求字符串长度的库函数,sizeof为求对象存储字节数的运算符)。
10.定义struct student { int num; char name[20];} st[3];FILE *fp; fp已以文本方式打开文件写,试写一条语句:将st[2]的各成员的值写到文件fp中。
二、阅读程序(36分,每小题4分)仔细阅读下列程序,将各程序的运行结果写在答卷纸上。
(1)程序#include <stdio.h>main(){int a, b;scanf(“%d %d”, &a, &b);while ( a!=b )if ( a>b ) a = a-b;else b = b-a;printf(“%d\n”, a);}输入: 30 54输出:?(2)程序#include <stdio.h>#include <string.h>main(){int i, j, n;char s[20], t;gets(s);n = strlen(s);for ( i = n; i > 0; i-- ){t = s[n-1];for ( j = n-1; j > 0; j-- )s[j] = s[j-1];s[j] = t;puts(s);}}输入: abcd输出:?(3)程序#include <stdio.h>main(){int i = 1;while ( i<=15 )if( ++i%3!=2 )continue;elseprintf( “%d ”, i );printf( “\n” );}输出:?(4)程序#include <stdio.h>main(){int a[3][3]={ 1,3,6,7,9,11,14,15,17 };int i,j,s;for( s=i=0, j=2; i<3; i++, j-- )s+=a[i][j];printf( “%d,”, s );for( s=i=j=0; j<3; i++, j++ )s+=a[i][j];printf( “%d\n”, s );}输出:?(5)程序#include <stdio.h>int run( int *p ){int i, r=0;for( i=0; *(p+i)!=0; i+=2 )switch( *(p+i) ){case 1: r+=*(p+i+1); break;case 2: r-=*(p+i+1); break;case 3: r*=*(p+i+1); break;case 4: r/=*(p+i+1);}return r;}main(){int a[]={ 2, 100, 4, 4, 1, 50, 3, 5, 0, 0 };printf( “%d\n”, run(a) );}输出:?(6)程序#include <stdio.h>int n=0;int func( int x ){int y=1;static int z=1;y+=x;z+=x;printf( “%d: %d,%d,%d\n”, ++n, x, y, z);}main(){int i=0;while( i++<3 )func(i);printf( “Total: %d\n”, n );}输出:?(7)程序#include <stdio.h>#include <stdlib.h>main(){int *a, n, m, i, j, t;scanf( “%d%d”, &n, &m );a=(int *)malloc(n*sizeof(int)); for(i=0; i<n; i++)scanf( “%d”, &a[i] );for(i=0; i<m; i++){t=a[n-1];for(j=n-1; j>0; j--)a[j]=a[j-1];a[j]=t;}for(i=0; i<n; i++)printf( “%d ”, a[i] );printf( “\n” );}输入:10 61 2 3 4 5 6 7 8 9 0输出:?(8)程序#include “stdio.h”void fib( int n, long *s ){long f1, f2;if( n==1||n==2 )*s=1;else{fib( n-2, &f1 );fib( n-1, &f2 );*s=f1+f2;}}main(){long fn;int n;scanf( “%d”, &n );fib( n, &fn );printf( “f(%d)=%ld\n”, n, fn );}输入:9输出:?(9)程序#include <stdio.h>main(){FILE *fp;int i,a[10] = { 11,22,33,44,55,66,77,88,99,100 }; fp = fopen( "test.dat", "wb" );fwrite( a, sizeof(int), 10, fp );fclose( fp );fp = fopen( "test.dat", "rb" );for ( i = 0; i < 4; i++ )fread( &a[i+3], sizeof(int), 1, fp );for ( i = 0; i < 3; i++ )fread( &a[i+1], sizeof(int), 1, fp );fclose( fp );for ( i = 0; i < 10; i++ )printf( "%d ", a[i] );}假设文件操作总是成功。
输出:?三、改错程序(8分,每错误点2分)下列程序各有两个错误(两个错误分别是在不同的行上,并只在有注解行号所标注的行上),按原来程序的要求,纠正错误,并将错误所在行号以及错误行完整的正确内容写在答卷纸的对应栏内。
(1)以下程序是在5个字符串中求最小字符串并输出结果。
#include <string.h>#include <stdio.h>main(){char *min,*s[5]={ “int”,“short”,“long”,“char”,“float” };int i;/*1*/ min=s[0];/*2*/ for ( i=1; i<5; i++)/*3*/ if( min>s[i] )/*4*/ min=s[i];/*5*/ printf("%s\n", *min);}(2)以下程序从输入的10个整数中找到并输出正好出现2次的数(该数只输出一次),如没有这样的数,则输出No。
#include <stdio.h>main(){int a[10], i, j, count, yn;for(i=0; i<10; i++)scanf(“%d”, &a[i]);/*1*/ for(count=i=0; i<10; i++){/*2*/ for(yn=j=0; j<10; j++)/*3*/ if(a[i]==a[j])/*4*/ if(i>j) break;/*5*/ else count++;/*6*/ if(count==2){/*7*/ printf(“%d”, a[i]);/*8*/ yn=1;}}if(yn==0) printf(“No.”);printf(“\n”);}四、程序填空(12分,每填空2分)阅读下列问题描述和相应的C程序,把应填入其中 (n) 处的内容写在答卷纸的对应栏内。
(1)以下程序用二分法在一个各元已按升序排序的整型数组中查找某个数。
若存在,输出该数及它的下标位置;若不存在,输出表示找不到该数的信息。
main ( ){int low, high, m, x;int a[10]={ -54, -34, -8, 0, 3, 12, 25, 56, 68, 98 };scanf (“%d”, &x);low=0;high=9;while (low<=high){m=(low+high)/2;if ( x==a[m] ) (1) ;else if ( (2) ) low=m+1;else high=m-1;}if ( (3) )printf (“%d position is %d\n”, x, m);elseprintf(“%d is not found.\n”, x);}(2)以下程序读入一行字符,且每个字符存入一个结点,按输入顺序建立一个链表的结点序列,并输出该行字符,然后反序链表的结点序列,再输出反序的该行字符。