沈阳建筑大学C语言2013年试题

合集下载

二级C语言真题2013年09月 2

二级C语言真题2013年09月 2

二级C语言真题2013年09月-(2)(总分:100.00,做题时间:90分钟)一、选择题(总题数:40,分数:40.00)1.设循环队列为Q(1:m),其初始状态为front=rear=m。

经过一系列入队与退队运算后,front=15,rear=20。

现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为______。

(分数:1.00)A.4 √B.6C.m-5D.m-6解析:[解析] 循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear=m,当front=15,rear=20时,队列中有5个元素,比较次数为4次,故A选项正确。

2.下列叙述中正确的是______。

(分数:1.00)A.循环队列属于队列的链式存储结构B.双向链表是二叉树的链式存储结构C.非线性结构只能采用链式存储结构D.有的非线性结构也可以采用顺序存储结构√解析:[解析] 循环队列是队列的一种顺序存储结构,A选项错误。

双向链表为顺序存储结构,二叉树通常采用链式存储结构,B选项错误。

完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式,C选项错误,故D选项正确。

3.某二叉树中有n个叶子节点,则该二叉树中度为2的节点数为______。

(分数:1.00)A.n+1B.n-1 √C.2nD.n/2解析:[解析] 对任何一棵二叉树,度为0的节点(即叶子节点)总是比度为2的节点多一个。

二叉树中有n个叶子节点,则度为2的节点个数为n-1,故B选项正确。

4.下列叙述中错误的是______。

(分数:1.00)A.算法的时间复杂度与算法所处理数据的存储结构有直接关系B.算法的空间复杂度与算法所处理数据的存储结构有直接关系C.算法的时间复杂度与空间复杂度有直接关系√D.算法的时间复杂度与算法程序执行的具体时间是不一致的解析:[解析] 算法的时间复杂度是指执行算法所需要的计算工作量。

2013年全国计算机等级二级C语言模拟试题及答案

2013年全国计算机等级二级C语言模拟试题及答案

2013年全国计算机等级二级C 语言模拟试题及答案2013年3月份全国计算机等级二级C语言试题及答案一、填空题1、C语言中基本的数据类型有:__________、__________ 、__________ 。

2、C语言中普通整型变量的类型说明符为__________,在内存中占__________字节,有符号普通整型的数据范围是__________。

3、整数-35在机内的补码表示为__________。

4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是__________ 。

5、有如下语句:char A[ ]={”I am a student”}; 该字符串的长度是__________,A[3]=__________ 。

6、符号”a”和’a’的区别是__________。

7、所谓“指针”就是__________ 。

“&”运算符的作用是__________。

“*”运算符的作用是__________ 。

8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是__________。

二、选择题1、设整型变量a为5,使b不为2的表达式是()。

A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。

A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是( )。

int x=10,y=10;printf(“%d%d\n”,x--,--y);A. 10 10B. 9 9C. 9 10D. 10 94、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为()。

2013年C语言与web技术答案

2013年C语言与web技术答案

2013年C语言一、单项选择题CCABDDA二、程序阅读题1.GAE82.4;3;13;12;2;1;11;11;1;1;_ _2,03.hijklmnofghijkdefabcdef4.2,6,10,20三、程序填空题1. j+=2 a[i]>a[j] puts2、杨辉三角#include <stdio.h>#define N 11void main(){int i, j,a[N][N]; /*定义二维数组a[11][11]*/for(i=1;i<N;i++)a[i][1] = a[i][i] = 1; /*两边的数令它为1,因为现在循环从1开始,就认为a[i][1]为第一个数*/for(i=3;i<N;i++)for(j=2;j<=i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j]; /*除两边的数外都等于上两顶数之和*/for(i=1;i<N;i++){for(j=1;j<=i;j++) /*j<=i的原因是不输出其它的数,只输出我们想要的数*/printf("%6d",a[i][j]);printf("\n"); /*当一行输出完以后换行继续下一行的输出*/}printf("\n");}四、编写程序题1. 已知D盘根目录有一名为data1.txt的文件,其内容为:包括空格、回车和大/小写英文字母的文件。

请编写完整的C代码程序,去除该文件的所有回车,并将大写英文字母都改写为对应的小写字母,最终,将换好的文件保存在当前目录下一个名为data2.txt的文件中。

#include<stdio.h>int main(){FILE *fin, *fout;fin = fopen("D:\\data1.txt", "r");fout = fopen("D:\\data2.txt", "w");char c;// 重复读入字符,直到到达文件尾while ((c = fgetc(fin)) != EOF){// 如果是回车,不输出直接跳过if (c == '\n')continue;// 如果是大写字母,转换成小写if (c >= 'A' && c <= 'Z')c += 'a' - 'A';// 输出fputc(c, fout);}fclose(fin);fclose(fout);return 0;}2.输出200到50000之间能被3整除,且个位数为6,十位数不为7的所有整数及他们的和#include<stdio.h>int main(){int i,sum=0;for(i=200;i<=50000;i++){if(i%3==0&&i%10==6&&(i/10%10)!=7){printf("%d\t",i);sum=sum+i;}}printf("\n");printf("sum is %d",sum);}Web技术一、选择题BBABDCDDAA二、填空题1.background2.小3.像素(px)百分比4.href5.<tr>6.maxlength7. alert(),confirm(),prompt()8.<option>9.文档头文档体10.submit reset button11.&lt;12.服务类型主机名路径及文件名三、简答题1.红#FF0000黄#FFFF00蓝#0000FF白#FFFFFF黑#0000002. 一个name可以同时对应多个控件,比如checkbox和radio,而id必须是全文档中唯一的。

2013-2014第二学期C语言期末试卷B

2013-2014第二学期C语言期末试卷B

2013-2014学年第二学期《C语言程序设计》期末试卷(B)1.起换行作用的转义字符是()。

A.’\t’B.’\b’C.’\n’D.’\r’2.在以下几组运算符中,优先级最高的运算符是()。

A.<=B.=C./D.&&3.设有定义“int i=1;”,以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A.i++B.i+=1C.i+1D.++i4.C语言的三种基本结构是()。

A.顺序结构.逻辑结构.选择结构B.顺序结构.选择结构.循环结构C.逻辑结构.层次结构.网状结构D.层次结构.顺序结构.循环结构5.关于数组元素类型的说法,下列()是正确的。

A.必须是整数类型B.必须是整型或实型C.必须是相同数据类型D.可以是不同数据类型6.以下程序段的输出结果是()。

#include<stdio.h>void main(){int i,j,m=0;for(i=1;i<=5;i+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);}A.10B.15C.20D.257.设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是()。

A. 1B. 0C. 4D. 38.在C语言中运算对象必须是整型的是()。

A.%B./C.==D.<=9.若变量已说明为int类型,要给a、b、c输入数据,以下正确的输入语句为()。

A.read(a,b,c);B.scanf("%d%d%d",a,b,c);C.scanf("%D%D%D",&a,%b,%c);D.scanf("%d%d%d",&a,&b,&c);10.下面程序的结果是()。

main(){ int x=1;while(x<20){ x=x*x;x=x+1; }printf("%d",x); }A.1B.20C.25D.2611.运行如下程序,其结果为()。

二级C语言真题2013年09月-(2)

二级C语言真题2013年09月-(2)

二级C语言真题2013年09月-(2)(总分:100.00,做题时间:90分钟)一、选择题(总题数:40,分数:40.00)1.设循环队列为Q(1:m),其初始状态为front=rear=m。

经过一系列入队与退队运算后,front=15,rear=20。

现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为______。

(分数:1.00)A.4 √B.6C.m-5D.m-6解析:[解析] 循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear=m,当front=15,rear=20时,队列中有5个元素,比较次数为4次,故A选项正确。

2.下列叙述中正确的是______。

(分数:1.00)A.循环队列属于队列的链式存储结构B.双向链表是二叉树的链式存储结构C.非线性结构只能采用链式存储结构D.有的非线性结构也可以采用顺序存储结构√解析:[解析] 循环队列是队列的一种顺序存储结构,A选项错误。

双向链表为顺序存储结构,二叉树通常采用链式存储结构,B选项错误。

完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式,C选项错误,故D选项正确。

3.某二叉树中有n个叶子节点,则该二叉树中度为2的节点数为______。

(分数:1.00)A.n+1B.n-1 √C.2nD.n/2解析:[解析] 对任何一棵二叉树,度为0的节点(即叶子节点)总是比度为2的节点多一个。

二叉树中有n 个叶子节点,则度为2的节点个数为n-1,故B选项正确。

4.下列叙述中错误的是______。

(分数:1.00)A.算法的时间复杂度与算法所处理数据的存储结构有直接关系B.算法的空间复杂度与算法所处理数据的存储结构有直接关系C.算法的时间复杂度与空间复杂度有直接关系√D.算法的时间复杂度与算法程序执行的具体时间是不一致的解析:[解析] 算法的时间复杂度是指执行算法所需要的计算工作量。

【高分飘过】2013年国二C语言上机题库(必备完美版)

【高分飘过】2013年国二C语言上机题库(必备完美版)

2013年国二C语言上机题库一、上机改错题的特点和注意事项1.上机改错的试题中通常包含两个(或三个)错误需要修改。

2.试题中用"******found******/"来提示在下一行(或下面第二行)有错。

3.错误的性质基本分语法错和逻辑错两种,也有些试题要求把语句添加在下划线处4.要注意的是:只能在出错的行上进行修改,不要改动程序行的顺序,更不要自己另编程序。

二、C编程时常犯的错误1.书写标识符时,忽略了大小写字母的区别。

main(){int a=5;printf("%d",A);}编译程序把a和A认为是两个不同的变量名,而显示出错信息。

C认为大写字母和小写字母是两个不同的字符。

习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。

2.忽略了变量的类型,进行了不合法的运算。

main(){float a,b;printf("%d",a%b);}%是求余运算,得到a/b的整余数。

整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。

3.将字符常量与字符串常量混淆。

char c;c="a";在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。

C规定以“\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a'和‘\',而把它赋给一个字符变量是不行的。

4.忽略了“=”与“==”的区别。

在许多高级语言中,用“=”符号作为关系运算符“等于”。

如在BASIC程序中可以写if (a=3) then …但C语言中,“=”是赋值运算符,“==”是关系运算符。

如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。

由于习惯问题,初学者往往会犯这样的错误。

5.忘记加分号。

分号是C语句中不可缺少的一部分,语句末尾必须有分号。

二级C语言真题2013年03月-(3)

二级C语言真题2013年03月-(3)

二级C语言真题2013年03月-(3)(总分:100.00,做题时间:90分钟)一、选择题(总题数:40,分数:40.00)1.设数据元素的集合D={1,2,3,4,5},则满足下列关系R的数据结构中为线性结构的是______。

(分数:1.00)A.R={(1,2),(3,4),(5,1)}B.R={(1,3),(4,1),(3,2),(5,4)} √C.R={(1,2),(2,3),(4,5)}D.R={(1,3),(2,4),(3,5)}解析:[解析] 一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,称为线性结构。

不同时满足以上两个条件的数据结构就称为非线性结构。

A选项中有两个根节点3和5故错误。

B选项根节点为5,排列顺序为54132,B选项正确。

C选项有两个根节点1和4,故错误。

D选项有两个根节点1和2,故错误。

2.下列叙述中正确的是______。

(分数:1.00)A.链表节点中具有两个指针域的数据结构可以是线性结构,也可以是非线性结构√B.线性表的链式存储结构中,每个节点必须有指向前件和指向后件的两个指针C.线性表的链式存储结构中,每个节点只能有一个指向后件的指针D.线性表的链式存储结构中,叶子节点的指针只能是空解析:[解析] 双向链表与树形结构的节点均可以包含两个指针域,但前者为线性结构,后者为非线性结构,故A选项正确。

双向链表含有指向前件和指向后件的两个指针,故C选项错误。

线性链表就是指线性表的链式存储结构。

由于这种链表中,每个节点只有一个指针域,故又称为单链表,故B选项错误。

二叉树为非线结构,叶子节点没有后件,但是可以有指向前件的指针,故D选项错误。

3.一个栈的初始状态为空。

现将元素A,B,C,D,E依次入栈,然后依次退栈三次,并将退栈的三个元素依次入队(原队列为空),最后将队列中的元素全部退出。

则元素退队的顺序为______。

沈阳建筑大学C语言复习资料

沈阳建筑大学C语言复习资料

沈阳建筑大学C语言复习资料注:此资料所涉及内容理解透彻即可轻松得到80分教材复习内容:要点1常量与变量,标识符命名2输入输出格式控制3程序控制结构(条件表达式,分支,循环)4流程转移控制5函数定义与使用,变量的作用域和存储类型6二维数组,指针数组,字符数组(字符串)7指针数组,函数参数,数组参数8结构体定义与使用9函数、指针、结构体综合10文件操作需要看的题例题4.77.2课后习题:4.104.194.245.45.65.76.3(2)6.56.117.67.84.10(1)#include <stdio.h>main(){int i, sum = 0;for (i = 1; i <= 101; i = i+2){sum = sum + i;}printf("sum=%d\n", sum);}(2)#include <stdio.h>main(){int i = 1, sum = 0;while (i <= 101){sum = sum + i;i = i + 2;}printf("sum=%d\n", sum);}4.19#include <stdio.h>#include <math.h>main(){int i1, i2, i3, i4, k, n;printf("Input data is:");scanf("%d", &n);k = fabs(n); /*取绝对值*/i1 = k / 1000; /*分离出千位*/i2 = (k - i1 * 1000) / 100; /*分离出百位*/ i3 = (k - i1 * 1000 - i2 * 100) / 10; /*分离出十位*/i4 = k % 10; /*分离出个位*/ printf("The sum of the total bit is %d\n", i1+i2+i3+i4); }4.24#include <stdio.h>main(){int x, y, z;for (x = 0; x <= 20; x++){for (y = 0; y <= 33; y++){z = 100 - x - y;if (5*x + 3*y + z/3.0 == 100){printf("x=%d, y=%d, z=%d\n", x, y, z);}}}5.4(1)#include <math.h>main(){int n, ret;printf("Input n:");scanf("%d",&n);ret = IsPrimeNumber(n);if (ret != 0){printf("%d is a prime number\n",n);}else{printf("%d is not a prime number\n",n);}}/*函数功能:判断参数是否是素数函数入口参数:number为整型数,要求为正整数函数返回值:非0值表示是素数,否则不是素数int IsPrimeNumber(int number){int i;if (number <= 1) /* 负数、0和1都不是素数*/ return 0;for (i=2; i<=sqrt(number); i++){if ((number % i) == 0) /* 被整除,不是素数*/return 0;}return 1;}(2)#include <math.h>main(){int n, ret;printf("Input n:");scanf("%d",&n);ret = IsPrimeNumber(n);if (ret != 0){printf("%d is a prime number\n",n);}else{printf("%d is not a prime number\n",n);}}/*函数功能:判断参数是否是素数函数入口参数:number为整型数,要求为正整数函数返回值:非0值表示是素数,否则不是素数*/int IsPrimeNumber(int number){int i, flag = 1; /*标志变量置为真,假设是素数*/ if (number <= 1) /* 负数、0和1都不是素数*/ flag = 0;for (i=2; i<=sqrt(number); i++){if ((number % i) == 0) /* 被整除,不是素数*/flag = 0;}return flag;}5.6#include <stdio.h>int MinCommonMultiple(int a, int b);main(){int a, b, x;printf("Input a,b:");scanf("%d,%d",&a,&b);x = MinCommonMultiple(a,b);printf("MinCommonMultiple = %d\n", x);}/*函数功能:计算两个正整数的最小公倍数函数入口参数:两个整型数函数返回值:最小公倍数*/int MinCommonMultiple(int a, int b){int i;for (i=1; i<b; i++){if ((i*a) % b == 0)return i*a;}return b*a;}5.7#include <stdio.h>int MaxCommonFactor(int a, int b);main(){int a, b, x;printf("Input a,b:");scanf("%d,%d",&a,&b);x = MaxCommonFactor(a,b);printf("MaxCommonFactor = %d\n", x); }/*函数功能:计算两个正整数的最大公约数函数入口参数:两个整型数函数返回值:最大公约数*/int MaxCommonFactor(int a, int b){int r;do{r = a % b;a = b;b = r;}while (r != 0);return a;}6.3(2)(2)#include <stdio.h>main(){int a[10], n, max, min, maxPos, minPos;for (n=0; n<10; n++){scanf("%d",&a[n]);}max = min = a[0];maxPos = minPos = 0;for (n=0; n<10; n++){if (a[n] > max){max = a[n];maxPos = n;}else if (a[n] < min){min = a[n];minPos = n;}}printf("max=%d, pos=%d\n",max, maxPos);printf("min=%d, pos=%d\n",min, minPos);}6.5#include <stdio.h>#define ARR_SIZE 10/*函数功能:找出n个数中的最大数与最小数并将其位置对换函数参数:整型数组a, 存放待处理数据整型变量n,为数据个数返回值:无*/void MaxMinExchang(int a[], int n){int maxValue = a[0], minValue = a[0], maxPos = 0, minPos = 0;int i, temp;for (i=1; i<n; i++){if (a[i] > maxValue){maxValue = a[i];maxPos = i;}if (a[i] < minValue){minValue = a[i];minPos = i;}}temp = a[maxPos];a[maxPos] = a[minPos];a[minPos] = temp;}main(){int a[ARR_SIZE], i, n;printf("Input n(n<=10):");scanf("%d", &n) ;printf("Input %d Numbers:\n", n);for (i=0; i<n; i++){scanf("%d", &a[i]);}MaxMinExchang(a, n);printf("After MaxMinExchange:\n");for (i=0; i<n; i++){printf("%4d", a[i]);}printf("\n") ;}6.11#include <stdio.h>#include <string.h>#define ARR_SIZE 80main(){char str[ARR_SIZE];int len, i, letter = 0, digit = 0, space = 0, others = 0;printf("Please input a string:");gets(str);for (i=0; str[i]!='\0'; i++){if (str[i]>='a' && str[i]<='z' || str[i]>='A' && str[i]<='Z') letter ++; /*统计英文字符*/else if (str[i] >= '0' && str[i] <= '9' )digit ++; /*统计数字字符*/else if (str[i] == ' ' )space ++; /*统计空格*/elseothers ++; /*统计其他字符的个数*/ }printf("English character: %d\n", letter);printf("digit character: %d\n", digit);printf("space: %d\n", space);printf("other character: %d\n", others);}7.6(1)#include <stdio.h>int FindMax(int num[], int n, int *pMaxPos);int FindMin(int num[], int n, int *pMinPos);main(){int num[10], maxValue, maxPos, minValue, minPos, i;printf("Input 10 numbers:\n ");for (i=0; i<10; i++){scanf("%d", &num[i]); /* 输入10个数*/ }maxValue = FindMax(num, 10, &maxPos); /* 找最大值及其所在下标位置*/minValue = FindMin(num, 10, &minPos); /* 找最小值及其所在下标位置*/printf("Max=%d, Position=%d, Min=%d, Position=%d\n",maxValue, maxPos, minValue, minPos);}/* 函数功能:求n个数中的最大值及其所在下标位置函数入口参数:整型数组num,存储n个整数整型变量n,表示数组元素个数函数出口参数:整型指针变量pMaxPos,指向的地址单元存储最大值在数组中的下标位置函数返回值:最大值*/int FindMax(int num[], int n, int *pMaxPos){int i, max;max = num[0]; /*假设num[0]为最大*/*pMaxPos = 0; /*假设最大值在数组中的下标位置为0 */for (i = 1; i < n; i++){if (num[i] > max){max = num[i];*pMaxPos = i;}}return max ;}/* 函数功能:求n个数中的最小值及其所在下标位置函数入口参数:整型数组num,存储n个整数整型变量n,表示数组元素个数函数出口参数:整型指针变量pMinPos,指向的地址单元存储最小值在数组中的下标位置函数返回值:最小值*/int FindMin(int num[], int n, int *pMinPos){int i, min;min = num[0]; /*假设num[0]为最小*/*pMinPos = 0; /*假设最小值在数组中的下标位置为0 */for (i = 1;i < 10;i++){if (num[i] < min){min = num[i];*pMinPos = i;}}return min ;}(2)#include <stdio.h>void FindMax(int num[], int n, int *pMax, int *pMaxPos);void FindMin(int num[], int n, int *pMin, int *pMinPos);main(){int num[10], maxValue, maxPos, minValue, minPos, i;printf("Input 10 numbers:\n ");for (i=0; i<10; i++){scanf("%d", &num[i]); /* 输入10个数*/ }FindMax(num, 10, &maxValue, &maxPos); /* 找最大值及其所在下标位置*/FindMin(num, 10, &minValue, &minPos); /* 找最小值及其所在下标位置*/printf("Max=%d, Position=%d, Min=%d, Position=%d\n",maxValue, maxPos, minValue, minPos);}/* 函数功能:求n个数中的最大值及其所在下标位置函数入口参数:整型数组num,存储n个整数整型变量n,表示数组元素个数函数出口参数:整型指针变量pMaxPos,指向的地址单元存储最大值在数组中的下标位置整型指针变量pMax,指向的地址单元存储最大值函数返回值:无*/void FindMax(int num[], int n, int *pMax, int *pMaxPos){int i;*pMax = num[0]; /*假设num[0]为最大*/*pMaxPos = 0; /*假设最大值在数组中的下标位置为0 */for (i = 1; i < n; i++){if (num[i] > *pMax){*pMax = num[i];*pMaxPos = i;}}}/* 函数功能:求n个数中的最小值及其所在下标位置函数入口参数:整型数组num,存储n个整数整型变量n,表示数组元素个数函数出口参数:整型指针变量pMinPos,指向的地址单元存储最小值在数组中的下标位置整型指针变量pMin,指向的地址单元存储最小值函数返回值:无*/void FindMin(int num[], int n, int *pMin, int *pMinPos){int i;*pMin = num[0]; /*假设num[0]为最小*/*pMinPos = 0; /*假设最小值在数组中的下标位置为0 */for (i = 1;i < 10;i++){if (num[i] < *pMin){*pMin = num[i];*pMinPos = i;}}}(3)#include <stdio.h>void FindMaxMin(int num[], int n, int *pMax, int *pMaxPos, int *pMin,int *pMinPos);main(){int num[10], maxValue, maxPos, minValue, minPos, i;printf("Input 10 numbers:\n ");for (i=0; i<10; i++){scanf("%d", &num[i]); /* 输入10个数*/ }/*找最大值最小值及其所在下标位置*/FindMaxMin(num, 10, &maxValue, &maxPos, &minValue, &minPos);printf("Max=%d, Position=%d, Min=%d, Position=%d\n",maxValue, maxPos, minValue, minPos);}/* 函数功能:求n个数中的最大值和最小值及其所在下标位置函数入口参数:整型数组num,存储n个整数整型变量n,表示数组元素个数函数出口参数:整型指针变量pMaxPos,指向的地址单元存储最大值在数组中的下标位置整型指针变量pMax,指向的地址单元存储最大值整型指针变量pMinPos,指向的地址单元存储最小值在数组中的下标位置整型指针变量pMin,指向的地址单元存储最小值函数返回值:无*/void FindMaxMin(int num[], int n, int *pMax, int *pMaxPos, int *pMin,int *pMinPos){int i;*pMax = num[0]; /*假设num[0]为最大*/*pMaxPos = 0; /*假设最大值在数组中的下标位置为0 */*pMin = num[0]; /*假设num[0]为最小*/*pMinPos = 0; /*假设最小值在数组中的下标位置为0 */for (i = 1; i < n; i++){if (num[i] > *pMax){*pMax = num[i];*pMaxPos = i;}else if (num[i] < *pMin){*pMin = num[i];*pMinPos = i;}}}7.8(1)#include <stdio.h>#include <string.h>void Inverse(char *pStr);main(){char str[80];printf("Input a string:\n");Inverse(str); /*将存于str数组中的字符串逆序存放*/printf("The inversed string is:\n");puts(str); /*输出字符串*/}/*函数功能:实现字符串逆序存放函数参数:字符指针变量,所指向的存储单元存放源字符串,逆序后的字符串也存放于此返回值:无*/void Inverse(char *pStr){int len;char temp;char *pStart; /*指针变量pStart指向字符串的第一个字符*/char *pEnd; /*指针变量pEnd指向字符串的最后一个字符*/len = strlen(pStr); /*求出字符串长度*/for (pStart=pStr,pEnd=pStr+len-1; pStart<pEnd; pStart++,pEnd--){temp = *pStart;*pStart = *pEnd;*pEnd = temp;}}(2)#include <stdio.h>#include <string.h>void Inverse(char *pStr);main(){char str[80];printf("Input a string:\n");gets(str); /*输入字符串*/Inverse(str); /*将存于str数组中的字符串逆序存放*/printf("The inversed string is:\n");}/*函数功能:实现字符串逆序存放函数参数:字符指针变量,所指向的存储单元存放源字符串,逆序后的字符串也存放于此返回值:无*/void Inverse(char *pStr){int len = 0;char temp;char *pStart = pStr; /*指针变量pStart指向字符串的第一个字符*/ char *pEnd; /*指针变量pEnd指向字符串的最后一个字符*/for (; *pStart!='\0'; pStart++) len++; /*求出字符串长度*/for (pStart=pStr,pEnd=pStr+len-1; pStart<pEnd; pStart++,pEnd--){temp = *pStart;*pStart = *pEnd;*pEnd = temp;}}。

2013年C语言试卷

2013年C语言试卷

2012—2013学年第2学期《程序设计语言(C)》考试试卷专业班级姓名学号开课系室计算机应用技术系考试日期一.选择题1.以下说法中正确的是(C)A.总是从第1个函数开始执行B.要调用的函数必须在函数main中定义C.总是从函数main开始执行D.函数main必须放在程序的开始部分2.下列为字符常量的是( C )A."a" B.'ab' C.'\n' D.'\084'3.在C语言中,下面字符串能用作变量名的是( D )A.a+b B.auto C.2-and D.a24.在C语言中运算对象必须是整型的运算符是( A )A.% B./ C.== D.<=5.int x=10, y=3, z;则语句printf("%d\n", z=(x%y,x/y));的输出结果为( D )A.1 B.0 C.2 D.36.表达式( A )的值是整数类型A.15/2 B.15/2+2.0 C.25/5.0 D.0.5*107.若double x=2, y;则执行y=x+3/2;后,y的值是( B )A.3.500000 B.3.000000 C.2.000000 D.38.C语言程序的基本单位是( C )A.程序行B.语句C.函数D.字符9.设int类型的数据长度为2字节,则int类型数据的取值范围是( B )A.0~255 B.-32768~32767 C.-256~255 D.0~65535 10.语句int (*p)()的含义是( C )A.p是一个指向一维数组的指针变量B.p是指针变量,它指向一个整型数据的指针C.p是一个指向函数的指针,该函数的返回值为整型D.以上答案都不对11.main(){ int x=10, y=10; printf("%d,%d\n", x--,y--); }的结果是( A )A.10,10 B.9,9 C.9,10 D.10,912.( A )是C语言的标准函数名A.scanf B.case C.while D.int13.下面程序的输出结果是( D )main(){ int i=10;switch(i){case 9: i+=1;case 10: i+=1;case 11: i+=1;case 12: i+=1;}printf("i=%d\n", i);}A.10 B.11 C.12 D.1314.以下定义语句中,错误的是( D )A.int a[]={ 1, 2 }; B.int a[][3]={ 1, 2, 3, 4, 5 };C.char s[10]= "test"; D.int n=5, a[n];15.在一个源文件中定义的全局变量的作用域为(B)A.本文件的全部范围B.从定义该变量开始至本文件结束C.本函数的全部范围D.本程序的全部范围16.int型变量在内存中占4个字节,若int a[10]={ 0 , 2, 4 };则数组a所占字节数是( C )A.3 B.10 C.12 D.4017.#include <string.h>main(){ char a[7]="China";int i=sizeof(a), j=strlen(a);printf("%d %d\n", i,j);}的结果是( C )A.5 5 B.7 6 C.7 5 D.6 618.下面程序运行时,如果从键盘上输入5,结果是( B )main(){ int x;scanf("%d",&x);if(x--<5) printf("%d\n", x);else printf("%d\n", x ++);}A.3 B.4 C.5 D.619.若有以下说明和语句,且已知char型占1个字节,int型、float型占4个字节。

2013秋C语言试卷标准答案(A卷)-20130114

2013秋C语言试卷标准答案(A卷)-20130114
2013 年秋 C 语言程序设计试卷标准答案(A 卷)
一、单项选择题,每题 2 分,共 15 题。
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. D. 具有前述三个特征 B. _123 C. C. D. D. 80 A. a[10]=2; C. &a[i]和 a[i] C. b=fun(a); D. 嵌套调用和递归调用均可。 B. 地址 C. int *(q[5]); 3.0 x>10&x<20 else 总是与其之前最近的 if 配对
(共 35 题。
1.答案:m/10%10*100+m/100*10+m%10 2.答案:0 3.答案:36 4.答案:11 5. 答案:3
(共 15 分)
四、程序改错题, 每题 5 分。
(共 10 分)
注:共 4 题,每题中存在 5 个错误。限选 2 题。题目间评分不累计。 1.题目:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。
a=0; //改为:sum=0; //改为: for(i=0;i<3;i++) //改为:scanf(“%d”,&a[i][j]); //改为:sum=sum+a[i][i]; 或 sum+=a[i][i]; //改为:printf("sum=%d\n",sum);
for(i=0;i<3;i++);
#define N=11
//改为:#define N 11 // 改为:for(i=N-2;i>=0;i--)
for(i=N-1;i>=0;i--)
a[i]=a[i-1];//改为:a[i+1]=a[i]; exit;}//改为:break;} for(i=0;i<=N;i++) //改为:for(i=0;i<N;i++)

c语言真题-试卷答案及解释(2013年3月)

c语言真题-试卷答案及解释(2013年3月)

c语言真题-试卷答案及解释(2013年3月)一、选择题(1)B 【解析】N-S图是由Nassi 和Shneiderman 提出的一种符合程序化结构设计原则的图形描述工具。

它的提出是为了避免流程图在描述程序逻辑时的随意性上灵活性。

(2)D 【解析】结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用goto语句,总的来说可使程序结构良好、易读、易理解、易维护。

(3)B【解析】模块的独立程度可以由两个定性标准度量:耦合性和内聚性。

耦合性是衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚性是衡量一个模块内部各个元素彼此结合的紧密程度。

一般来说,要求模块之间的耦合尽可能地低,而内聚性尽可能地高。

(4)D 【解析】需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。

选项A)软件开发方法是在总体设计阶段需完成的任务;选项B)软件开发工具是在实现阶段需完成的任务;选项C)软件开发费用是在可行性研究阶段需完成的任务。

(5)A 【解析】算法具有5个特性:①有穷性:一个算法必须(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的;②确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生歧义;③可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现;④输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合;⑤输出:一个算法有一个或多个输出。

(6)D 【解析】在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都为n(n-1)/2,堆排序需要的比较次数为nlog2n。

(7)B 【解析】由栈"后进先出"的特点可知:A)中e1不可能比e2先出,C)中e1不可能比e2先出,D)中栈是先进后出的,所以不可能是任意顺序。

2013-2014-2C语言A卷包含答案版

2013-2014-2C语言A卷包含答案版

A卷2013—2014学年第2学期《计算机程序设计C(2-2)》期末考试试卷专业班级姓名学号开课系室计算机应用技术系考试日期 2014年6月22日题号一二三总分得分阅卷人一、程序阅读题(每空2分,共20分)1.又是一年一度的毕业季,马上要离开校园踏上工作岗位的同学们在拍摄完照片之后,大家有了一个共同的想法——那就是在毕业前互换礼物。

到了约定的日子,同学们带来的礼物琳琅满目,都不知道该如何交换了。

于是,在经过讨论后一致决定,大家将n个礼物放在一起统一编号为1,2,……,n,并同时对该礼物的拥有者进行相同编号。

交换的规则是:1号同学与n号同学的礼物互换,2号同学与n-1号同学的礼物互换,以此类推。

请阅读下面程序并完成填空。

#include <stdio.h>#define N 120 + 1int main( ){int a[N] = {0},n,i,j,t;scanf("%d",&n);for( i = 1; i <= n; i++ ){【1】;}for( i = 1, 【2】 ; 【3】 ; i ++, j-- ){t = a[i];a[i] = a[j];a[j] = t;}for( i = 1; i <= n; i ++ ){printf("%d ",a[i]);}printf("\n");return 0;}2.下面函数的功能是统计字符串substr在字符串str中出现的次数,请阅读下面程序段并完成填空。

int count(char str[], char substr[]){int i,j,k,num=0;for (i = 0; str[i] != '\0'; i ++){【4】;for(j = 0; substr[j] != '\0'; k ++,j ++){if(【5】){break;}}if(substr[j] == '\0'){num ++;}}【6】;}13.在Windows操作系统中的“复制-粘贴-重命名”功能,可以实现将文件从一个位置复制粘贴到另外一个位置。

2013年6月全国计算机等级考试二级C语言上机题库(最全)

2013年6月全国计算机等级考试二级C语言上机题库(最全)

第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。

函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。

/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。

函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。

/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

2013二级c语言真题100道

2013二级c语言真题100道

第1套填空题请补充FUN函数,FUN 函数的功能是求10的阶乘。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdio.h>long fun(int n){if (___1___)return (n*fun(___2___));return ___3___;}main(){printf("10!=%ld\n",fun(10));}第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K 〈=10000),打印它的所有因子(即所有为素数的因子)。

例如,若输入整数2310,则应输出:2、3、5、7、11。

请改正程序中的错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h> /********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter aninteger number between 2 and10000:");scanf("%d", &k);printf("\n\nThe primefactor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) &&(IsPrime(j)))printf(" %4d,", j);printf("\n");}第1处:Isprime(int n);应改为Isprime(int n)第2处:if !(n%i)应该为if(!(n%i))第2套填空题请在函数FUN的横线上填写若干表达式,使从键盘上输入一个整数N,输出斐波纳契数列。

2013年辽宁省C#语言深入

2013年辽宁省C#语言深入
{scanf(“%d”,&x); //从键盘读入整数序列。
if(x!=-1) // 读入的整数不等于-1时入栈。
if(top==maxsize-1){printf(“栈满\n”);exit(0);}
else s[++top]=x; //x入栈。
void InOutS(int s[maxsize])
//s是元素为整数的栈,本算法进行入栈和退栈操作。
{int top=0; //top为栈顶指针,定义top=0时为栈空。
for(i=1; i<=n; i++) //n个整数序列作处理。
15、本题应使用深度优先遍历,从主调函数进入dfs(v)时 ,开始记数,若退出dfs()前,已访问完有向图的全部顶点(设为n个),则有向图有根,v为根结点。将n个顶点从1到n编号,各调用一次dfs()过程,就可以求出全部的根结点。题中有向图的邻接表存储结构、记顶点个数的变量、以及访问标记数组等均设计为全局变量。建立有向图g的邻接表存储结构参见上面第2题,这里只给出判断有向图是否有根的算法。
{s=(LinkedList)malloc(sizeof(LNode));
s->data=A[i]; pre->next=s; s->next=p;//将结点s链入链表中
}
}//for
return(h);
}算法结束
14、给定n个村庄之间的交通图,若村庄i和j之间有道路,则将顶点i和j用边连接,边上的Wij表示这条道路的长度,现在要从这n个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院的路程最短?试设计一个解答上述问题的算法,并应用该算法解答如图所示的实例。(20分)

word版,2013级C语言复习题(20题)答案

word版,2013级C语言复习题(20题)答案

函数+指针+构造体(20题)1)编写函数voidchangeStr(char*s),其功能是将s指向的字符串中的所有小写字母变换成相应的大写字母、所有大写字母变换成小写字母、非字母字符不变。

#include<stdio.h>#include<stdlib.h>#include<string.h>voidchangeStr(char*s){/*错误典范while(*s){if(*s>='a'&&*s<='z')*s-=32;if(*s>='A'&&*s<='Z')*s+=32;++s;}*/char*p=s;while(*p){if(*p>='a'&&*p<='z')*p-=32;elseif(*p>='A'&&*p<='Z')*p+=32;++p;}}intmain(){intn;char*ch=(char*)malloc(100*sizeof(char));gets(ch);changeStr(ch);puts(ch);free(ch);return0;}2)编写函数voidfactor(intx,int*p,int*n),其功能是求解整数x的因子,将这些因子寄存到p指向的数组中,并将因子的个数储存到n指向的变量中。

提示:整数24的因子为2,4,6,8,12,24。

#include<stdio.h>#include<string.h>#include<stdlib.h>voidfactor(intx,int*p,int*n){inti,j;j=0;for(i=2;i<=x;i+=2){if(x%i==0){p[j++]=i;*n=j;}}}intmain(){intn,x;inti;int*p=(int*)malloc(50*sizeof(int));printf("请输入一个数");scanf("%d",&x);factor(x,p,&n);printf("因子的个数为:%d\n",n);for(i=0;i<n;i++)printf("%d",p[i]);printf("\n");free(p);return0;}(3)编写函数intsum(inta[],intn,intres[2]),其功能是将长度为n的数组a的【各元素之和】以及数组a中【最大值与最小值的差值】寄存在数组res中。

2013年辽宁专升本考试真题-C语言部分

2013年辽宁专升本考试真题-C语言部分

2013年辽宁专升本考试真题-C语言部分2013辽宁省高职高专毕业生升入本科学校招生考试计算机试卷第二部分计算机高级语言部分(C语言)四、填空题(将正确答案填写到答题卡相应的位置上,每小题2分,共10分)41.若有定义:int a=2,b=1; 则表达式b+1.0/a 输出结果是________________________。

42. 若有定义:int a,b;则表达式b=((a=2*3,a*2),a+4)的值为________________________。

43.语句fopen(“myfile”,”r+”):的含义是________________________。

44.若有定义:int a;能正确表达-1≤a≤2 且a≠0 的C语言表达式是________________________。

45.若有定义:int a=1,b=2,max; 则能实现语句if(a>b) max=a;else max=b;的条件赋值语句为______。

五、阅读程序题(阅读下列程序,将正确的运行结果填写到答题卡相应的位置上,每小题3分,共24分)46.下面程序运行的结果是___________________。

V oid main(){ int i=1,sum=0,t=1;while(i<5){ t*=i++;Sum=sum+t;}Printf(“%d\n”,sum)}47. 下面程序运行的结果是___________________。

main(){ char c1,c2;c1=?A?+?8?-…3?;c2=?A?+?6?-…3?;printf(“%d,%c \n”,c1,c2);}48.下面程序运行的结果是___________________。

main(){ int a,b;for(a=1,b=1;a<=100;a++){ if(b>=20) break;if(b%3==1){ b+=3; continue;}b-=5;}printf(“%d\n”,a);}49. 下面程序运行的结果是___________________。

2022年沈阳建筑大学公共课《C语言》科目期末试卷B(有答案)

2022年沈阳建筑大学公共课《C语言》科目期末试卷B(有答案)

2022年沈阳建筑大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有如下结构体说明:struct ST{int a;float b;struct ST*c;doublex[3];}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。

_______2、结构化程序由________、________ 、________ 3种基本结构组成。

3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、在C语言的赋值表达式中,赋值号左边必须是_______5、若a、b和c均是int型变量,则执行表达式a=(b=4)+(c=2)后a的值为_______,b的值为_______,c的值为_______。

6、测试char型变量a第6位是否为1的表达式是_______(设最右位是第1位)。

7、函数swap(int x,inty)可完成对x和y值的交换。

在运行调用函数中的如下语句后,a[0]和a[1]的值分别为_______,原因是_______。

a[o]=1;a[1]=2;swap(a[o],a[1]);8、若有定义:doublex[3][5];,则x数组中行下标的下限为_______,列下标的上限为_______。

9、设有如下定义:#define SWAP(T,X,Y){T=X;X=Y;Y=T;}以下程序段将通过调用宏实现变量x和y内容的交换,请填空。

Double x=2.5,y=6.4,z;SWAP(_______);10、已有一维数组a,n为元素的个数,且各元素均有值;函数void process (float*p,int n,float(*fun)(float*,int))为一个可完成下面各种计算的通用函数。

请分别写出用于以下计算的各函数中的调用语句_______、_______和_______。

(1)float arr_add(float*arr,int n)计算数组元素值之和。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、单项选择题(每小题2分,共40分) 将正确选项涂写在答题纸相应位置上。

1.使用一些图框表示各种类型的操作,其中输出框是_A___A)B)C)D)2.下面程序执行后,输出结果为__B__A)-1,1,0 B)0,1,1 C)0,2,1 D)0,2,0main(){ int a=-1,b=1,c;c=a++||++b;printf("%d,%d,%d\n",a,b,c);}3.在下列标识符中,哪个是不合法的__A__A)a+b B)_321 C)max D)name4.设int型的数据长度为2个字节,则unsigned int型数据的取值范围是__B__A)0~28-1 B)0~216-1 C)-215~215-1 D)-28~28-15.以下叙述正确的是__C__A)在C程序中,可以有两个以上的main函数。

B)在编译C程序时,可发现注释中的拼写错误。

C)C程序的每行可以书写多条语句。

C)scanf和printf是C语言提供的输入输出语句。

6.正确的赋值语句是_A___A)a=2+(b=1);B)a=+b=3 C)a=b=c D)y=int(x)7.下列程序的运行结果是__C__A)10 B)2*5=10 C)a*b=10 D)2*5=a*b#include〈stdio.h〉main(){ int a=2 ,b=5 ;printf("a*b=%d\n",a*b);}8.下面程序片段执行后,y的值为__D__A)2 B)0 C)6 D)4int x=2 ,y=0;y=x;if(x<5) y=y+2;x=6;9.以下对C语言函数的描述中,正确的是_A___A)调用函数时,参数可以是表达式B)函数的定义可以是嵌套C)函数必须有返回值D)所有函数必须在同一个程序文件中定义10.在C 语言中,函数返回值的类型由__D__决定。

A)调用函数时临时决定B)return语句中的表达式类型C)调用函数的主调函数类型D)定义函数时所指定的函数类型11.以下程序的输出结果是_D___A)10 B)11 C)12 D)13#define MA(x) x*(x+3)main(){ int a=1,b=2;printf("%d\n",MA(a+b));}12.正确的数组定义是__A__A)char a[ ]={'A','B','C','\0'};B)int a[3]={1,2,3,4,5};C)char a="ABC\0"; D)int a[ ] ="ABC";13.设有数组定义:float a[ ]={1,2,3,4,5};则数组a所占的内存空间为_B___ A)10个字节B)20个字节C)30个字节D)4014.设有数组定义:int a[ 3];则正确的赋值为__C__A)a[3]=5;B)a=1,2,3; C)a[0]=3;D)a={1,2,3};15.下列程序执行后的输出结果是(B )A)abcd0you B)abcd C)you D)abcdeyoumain( ){ char arr[10] ="abcde";strcat (arr,"you");arr[4]='\0';printf("%s\n",arr);}16.有如下程序段int *p1,a=10 ,**p2;p1=&a; p2=&p1; **p2=a+10;执行该程序段后,a的值为__B__A)编译出错B)20 C)随机数D)1017.对于基类型相同的两个指针变量,能够进行运算的是__A__A)=B)*C)/ D)+18.设有以下定义:int a[4][5]={1,2,3,4,5,,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};int (*p)[5]=a;则下列能够正确表示数组元素a[2][3]的表达式是__C__A)*((*p+3)[2]) B)*(*(*p+6)) C)*(*(a+2)+3) D)*(*p+2)+319.下列程序的输出结果是__B__A)3 B)4 C)5 D)6struct abc{ int a,b; };main( ){ struct abc x[2]={ {1,2},{3,4}};int t;t=x[0].a*x[1].b;printf("%d\n",t);}20.对于C语言的文件,正确的结论是__A__A)文件操作必须先打开文件B)文件的存取只能是随机方式C)文件又由数据行组成D)只能处理二进制文件二、填空题(1~5题,每空2分,6~7题,每空3分,共25分)1.设有以下变量定义,并已赋确定的值char w; int x; float y; double z;则表达式:w*x +z-y所求值的数据类型位double 。

2.在使用Turbo C调试C程序时,按F9键是指编译、连接。

3.如果一个函数只能被本文件中其他函数所调用,它称为内部函数。

4.在对一个文件读写之前要打开文件。

5.下面出错信息的含义是重复声明main 。

Redeclaration of 'main'6.程序的功能是:输出所有能被3整除且个位数为6的3的位数。

#include <stgio.h>main(){ int i;for(i=106; i<996; i+=10 )if(i%3==0) printf(“%d\n”,i) ;}7.以下程序用递归法求解,当最后一项的值小于0.00001时,累加结束。

main(){ double s,x;double sum(double,double,double *);scanf("%lf",&x);s=1.0;if( x>1 ){ printf("s=%10.5lf\n",sum(1.0,x,&s); )else printf("data error!\n");}double sum(double t,double p, double *a ){ t=t/p;if(t>=0.00001)sum(t,p,a);*a+= *a+=t ;return(*a);}三、修改程序题(每个*found*下面都有一处错误,共有5处错误,每处3分,共15分)1.下面的程序将输入的两个整数按大小顺序输出。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!/**********found**********/void swap(int *p1,*p2){ int temp; (int*temp)temp=*p1;/**********found**********/p1=p2;*p2=temp; (*p2=*temp)}main(){ int a,b;int *p_1,*p_2;scanf("%d%d",&a,&b);p_1=&a; p_2=&b;if(a<b) swap(p_1,p_2);printf("\n%d,%d\n",a,b);}2.建立字符串“Hi xxxxxx How are you.”,在字符串xxxxxx的位置输入自己的姓名,最后输出完整的字符串。

如:姓名为“Christian”,则输出为“Hi Christ How are you.”。

请改正函数fun中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <stdio.h>#include <string.h>/**************found******************/void fun(char string,char name ) (void fun(char *string,char *name )){ int i=0;while(name[i]!='\0' && i<6){ string[3+i]=name[i]; (string[3+i]=' ')i++;}/************************found ***************/for(; i<6; i++)string[6+i]=' ';/* 代表空格*/}main( ){ char str[30]={"Hi xxxxxx How are you."},c[10];gets(c);fun(str,c);/************************found ***************/printf("\ns",str[0]); (printf("\ns",str);)}四、程序设计题(每题10分,共20分)1.函数fun 的功能是:在a数组的n个数中找出最小数、最大数以及它们的下标,并由m 数组传回。

注意:不要改动给出的部分源程序,仅要求编写函数fun。

#include <conio.h>#include <stdio.h>#define M 10void fun(int a[ ],int rn[2],int n){}main( ){int i,a[M],b[2];printf("input a array:\n");for(i=0; i<M; i++)scanf("%d",&a[i];fun(a,b,M);printf("The result is :\n");printf("最小数的下标为:%d ",c[0]);printf("最大数的下标为:%d ",c[1]);}2.不得修改main函数,编写sort函数的函数体。

输入5个国名并按字母顺序排列后输出。

#include "string.h"main(){void sort(char *name[],int n);static char *name[]={ "CHINA","AMERICA","AUSTRALIA","FRANCE","GERMAN"};int i,n=5;sort(name,n);for(i=0; i<n; i++) printf("%s\n",name[i]);}void sort(char *name[],int n){}。

相关文档
最新文档