上海大学程序设计基础(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.在软件系统进行组装测试的时候发现错误,则针对被发现的错误,可以判断在整个软件开发过程最可能出现错误的阶段是()。
- 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)以下程序读入一行字符,且每个字符存入一个结点,按输入顺序建立一个链表的结点序列,并输出该行字符,然后反序链表的结点序列,再输出反序的该行字符。