2005-06第2学期《C语言程序设计》期末考试题B卷-new
- 格式:pdf
- 大小:7.38 KB
- 文档页数:3
B卷2005—2006学年第二学期《程序设计语言(C)》参考答案和评分标准专业班级姓名学号开课系室软件工程系考试日期 2006年7月3日题号一二三总分得分阅卷人程序设计语言(C)试卷(B 卷)答题卡说明:1.选择题和判断题必须填在答题卡上才有效,综述题写在指定位置。
2.本试卷共13页,不得拆开。
一、 单项选择题(正确的答案涂黑或画圈,20分)二、 读程序填空题(在空格处填写正确答案,20分)三、编程题(60分,在下面的空白处编写程序)1、编程计算下面函数的值,其中x由键盘输入。
(12分)-1 x≤-1y=xe -1<x<1 (x+1)2x≥1参考答案:#include <math.h>main(){int x;float y;printf("input x \n");scanf("%d",&x);if(x<=-1) y=-1;else if(x>-1 && x<1) y=exp(x);else y=(x+1)*(x+1) ;printf("%f",y);}[评分标准]:头文件、程序框架占2分;读入x值占1分;每个分支语句各占3分,共9分。
2.一球从200米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第15次落地时,共经过多少米?第15次反弹多高?(6分)参考答案:#include <stdio.h>main( ){ float sn=200.0,hn=sn/2;int n;for(n=2;n<=15;n++){ sn=sn+2*hn;hn=hn/2;}printf(“第15次落地共经过%f米\n”,sn);printf(“第15次反弹%f米\n”,hn);}[评分标准]:头文件、程序框架占2分;变量初始化占1分;for循环占3分。
3.编写一函数sum,求二维数组(M*M)上三角(含对角线)之和。
C程序设计试卷一、单选题(本题共20分,每小题2分)(1) 以下C语言常量中,表达错误的是___(1)___。
[A] 0xFF [B] 3.2e0.5 [C] 5.6 [D] ‘\n’(2) C程序的基本结构有___(2)___。
[A] 选择、重复和模块[B] 顺序、选择和模块[C] 顺序、选择和循环[D] 逻辑、物理和程序(3) 在C语言程序中,关于字符串的描述正确的是___(3)___。
[A]可定义一个字符串变量来存储字符串;[B] 可定义一个字符变量来存储任意字符串;[C] 可定义一个字符数组来存储字符串;[D] 可定义一个字符指针来存储字符串;(4) 在C语言中,用关键字___(4)___定义双精度类型变量。
[A] single [B] double [C] float [D] int(5) 下面叙述中不正确的是___(5)___。
[A] 不同函数中可以使用相同名字的变量[B] 形式参数是局部变量[C] 在一个函数内部的复合语句中定义的变量在本函数范围内有效[D] 在一个函数内部定义的变量只能在本函数范围内有效(6) 下面程序段的输出结果是___(6)___。
int i=100;while(i>120)i=i+1;printf(″%d″,i);[A] 100 [B] 101 [C] 120 [D] 121(7) 以下定义语句中正确的是___(7)___。
[A] char a='A' b='B';[B] float a=b=10.0;[C] int a=10, *b=&a;[D] float *a,b=&a;(8) 已有定义:int i, a[10], *p;,则合法的赋值语句是___(8)___。
[A] p=100; [B] p=a[5]; [C] p=a[2]+2; [D]p=a+2;(9) 设有定义:int a,*p1=&a; 以下scanf语句中能正确为变量a读入数据的是___(9)___。
期末试卷一一、单项选择题(每题1分,共45分)1.在计算机系统中,可以执行的程序是()A.源程序B.汇编语言程序C.机器语言程序D.ASCII码2.C语言程序的基本单位是()A.程序行B.语句C.函数D.字符3.下列对C语言程序的书写格式的描述,()是正确的。
A.C语言程序中,每行只能写一条语句B.C语言程序书写时通常采用“缩排”方式C.C语言程序的书写中要求每行都要以分号作结尾D.注释行必须放在程序的头或程序的尾4.启动TC V2.0环境后,打开一个C语言源程序的快捷键是()A.F1 B.F2 C.F3 D.F45.C语言源程序文件file.c经系统编译、连接后,生成的文件名为()A.file.c B.file C.file.obj D.file.exe6.下列选项中,合法的C语言标识符是()A._abc*2 B._ch_er C.a-1 D.a7&b7.以下所列的C语言常量中,错误的是()A.0xFF B.1.2e0.5 C.2L D.’\72’8.以下变量x,y,t均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是()A.x/y*z B.x*(1/(y*z))C.x/y*1/z D.x/y/z9.下列程序运行后的输出结果是()main(){ int y=3,x=3;printf(“%d\n”,++x+y++);}A.5 B.8 C.7 D.610.若已正确定义x和y为double类型,则表达式x=1,y=x+3/2的值是()A.1 B.2 C.2.0 D.2.511.在C语言中运算对象必须是整型的运算符是()A.% B./ C.= D.*12.若有以下定义:char a; int b; float c;则表达式a*b-c值的类型为()A.int B.char C.double D.float13.下列正确的C语言赋值语句的是()A.x=3,y=5 B.a=b=1 C.i++; D.y=int(x)14.有如下程序段:int a1,a2;char c1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入是()A.10A 20B<CR> B.10 A 20 B<CR>C.10 A20B<CR> D.10A20 B<CR>15.有如下程序,输入数据:12345m678<CR>后,x的值是()#include <stdio.h>main( ){ int x; float y;scanf("%3d%f",&x,&y);}A.12345 B.123 C.45 D.34516.有如下程序,对应正确的数据输入是()#include<stdio.h>main( ){ float a,b;scanf("%f%f",&a,&b);printf("a=%f,b=%f\n",a,b);}A.2.04<CR> B.2.04,5.67<CR>5.67<CR>C.a=2.04,b=5.67<CR> D.2.045.67<CR>17.有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式是()A.132<CR> B.1,3,2<CR>C.a=1,b=3,c=2<CR> D.a=1 b=3 c=2<CR>18.已知字母A的ASCII码是65,以下程序的执行结果是()#include<stdio.h>main( ){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);}A.A,Y B.65,65 C.65,90 D.65,8919.以下程序的执行结果是()#include<stdio.h>main( ){ int a=2,b=5;printf("a=%%d,b=%%d\n",a,b);}A.a=%2,b=%5 B.a=2,b=5C.a=%%d,b=%%d D.a=%d,b=%d20.最适合解决选择结构“若x>0,则y=1;否则y=0;”的语句是()A.switch B.嵌套的if-else C.if-else D.if21.设整型变量x,y和z的值依次为3,2和1,则下列程序段的输出结果是()if(x>y)x=y;if(x>z)x=z;printf(″%d,%d,%d\n″,x,y,z);A.1,1,1 B.1,2,1 C.1,2,3 D.3,2,122.执行下列程序段后,变量x的值是()int a=8,b=7,c=6,x=1;if(a>6) if(b>7) if(c>8) x=2;else x=3;A.0 B.1 C.2 D.323.运行下列程序的输出结果是()main(){ int a1=1,a2=1,a3=1,a4=1;if (a1>0) a3++;if (a1>a2) a3--;else if (a1= =a2) a3++;else a3--;printf(″%d,%d,%d,%d\n″,a4,a3,a2,a1);}A.1,1,1,1 B.1,2,3,4C.4,3,2,1 D.1,3,1,124.执行下列语句后,整型变量x的值是()switch (x=1) { case 0:x=10;break;case 1:switch (x=2) {case1:x=20;break;case2:x=30;}}A.30 B.20 C.10 D.125.以下说法中正确的是()A.continue和break只能用在循环体中B.continue只能用在循环体中C.break只能用在循环体中D.continue只能用在循环体外26.执行下列程序段的输出是()m=8;while (m>=5) m--,--m,n=m--- m;pritnf (″%d,%d″,m,n);A.2, 0 B.5,-1 C.5,0 D.5,127.设整型变量x的值为1,执行下列循环语句后,变量x 的值是()do x++; while (x++<2);A.2 B.3 C.4 D.528.执行下列语句后,变量k的值是()for (k=0;k<=5;k++) do k++;while (k<5);A.5 B.6 C.7 D.829.下列程序段中,不能使变量m的值等于10的程序段是()A.m=0; B.do m=0;while (m++<9); while (m++<10);C.for (m=8;m<10;m++); D.m=0;L:m++;if (m<10)goto L;30.下列语句中不正确的是()A.static int a[5]={1,2,3,4,5};B.static int a[5]={1,2,3};C.static int a[]={0,0,0,0,0};D.static int a[5]={0*5};31.说明:int a[10]; 则对a数组元素的正确引用是()A.a[10] B.a[3.5] C.a(5) D.a[10-10]32.下面程序的运行结果是()main(){int a[6],i;for(i=1;i<6;i++){a[i]=9*(i-2+4*(i>3))%5;printf(“%2d”,a[i]);}}A.-4 0 4 0 4 B.-4 0 4 0 3C.-4 0 4 4 3 D.-4 0 4 4 033.以下程序的输出结果是()main(){int n[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]+1;printf(“%d\n”,n[1]);}A.1 B.3 C.2 D.434.下面程序的输出是()main(){char s[]=”cat and mouse”;int j=0;while(s[j]!=’\0’) ++j;printf(“%d\n”,j);}A.11 B.0 C.12 D.1335.下面程序的运行结果是()main(){char a[10]=”student”;char b[10]=”boy”;int n;n=strlen(a)+strlen(b);printf(“%d”,n);}A.7 B.10 C.12 D.2036.以下程序的输出结果是()void fun(int a,int b,int c){ a=456;b=567;c=678;}main(){ int x=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}A.30,20,10 B.10,20,30C.456,567,678 D.678,567,45637.在C语言程序中,当调用函数时,下面说法正确的是()A.实参和形参各占一个独立的存储单元B.实参和形参可以共用存储单元C.可以由用户指定实参和形参是否共用存储单元D.前面都不正确38.下列变量中,哪类变量的生存期和作用域是不一致的()A.自动变量B.定义在文件最前面的外部变量C.静态内部变量D.寄存器变量39.C语言中形参的缺省存储类别是()。
南昌大学2005~2006学年第二学期期末考试试卷一、单项选择题(每空 2 分,共50 分二、程序阅读题(每小题3分,共18分)三、填空题(每空2分,共20分)四、编程题(第1小题4分,第2小题8分,共12分)1.共4分(本题考自定义函数的应用,用主函数完成题目的功能不给分) void fun(char s1[],char s2[]){ int i,j=0;for(i=0;s1[i];i++) 0.5分if(s1[i]>='0'&&s1[i]<='9') 1分s2[j++]=s1[i]; 1分s2[j]='\0'; 1分第 11 页 共 11 页 求出前2项之和为一位数存入数组2分1分 1分求出前2项之和为两位数存入数组3分,没有考虑超过20项的情况应扣分 puts(s2); 输出0.5分(可用循环语句) }2.共8分# include <stdio.h>main ( ){int x[20],i,t,s=0,k=0;x[0]=2;x[1]=3;k=2; s=x[0]+x[1];while (k<20) 循环控制正确1分 {t=x[k-1]*x[k-2];if(t<10){s+=t;x[k++]=t;}else{ x[k++]=t/10;s+=t/10;if(k<20){x[k++]=t%10;s+=t%10;}}}i=0;while(i<k){ printf("%3d",x[i]);i++;}printf("\n%d\n",s);}。
C 语言程序设计期末考试试题及其答案一、单项选择题(本大题共20 题,每题 2 分,共40分)1、以下不是C 语言的特点的是( )A、 C 语言简洁、紧凑B、能够编制出功能复杂的程序C、 C 语言可以直接对硬件进行操作D、 C 语言移植性好2、以下不正确的C 语言标识符是( )A、ABC B 、abc C、a_bc D、ab.c3、一个C 语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5 个特性,对另外4 个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a 是整型,f 是实型,i 是双精度型,则表达式10+‘a'+i*f 值的数据类型为( )A、intB、float C 、double D、不确定6在C语言中,char型数据在内存中的存储形式是()A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678V。
只>后(<CR>表示回车),x的值是( ) 。
#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是()A、a=1,b=2B、b++;C 、a=b=5D、b=int(x);9、以下程序的执行结果是( )#include<stdio.h>{int i=10,j=10; printf("%d,%d\n",++i,j--);}A 、11,10B 、9,10C 、11,9D 、10,910、巳知字母 A 的ASCII 码是65,以下程序的执行结果是( ) #include<stdio.h>main() { char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、vB、十C、%D、!=12、设x、y和z是int型变量,且x = 3, y = 4, z= 5,则下面表达式中值为0 是( ) 。
大二c语言期末考试题及答案**大二C语言期末考试题及答案**一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable2C. variable-2D. variable$2**答案:B**2. 下列哪个选项是C语言中的关键字?A. includeB. mainC. intD. string**答案:C**3. C语言中,以下哪个函数用于计算两个整数的和?A. max()B. min()C. sum()D. pow()**答案:C**4. 在C语言中,以下哪个运算符用于逻辑与?A. &&B. ||C. !D. |**答案:A**5. C语言中,以下哪个选项是正确的字符串定义?A. char str = "Hello";B. char str[] = "Hello";C. string str = "Hello";D. char str[5] = "Hello";**答案:B**6. C语言中,以下哪个函数用于计算数组中元素的平均值?A. sum()B. average()C. mean()D. avg()**答案:B**7. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int x, int y);B. int add(int, int);C. int add();D. int add(x, y);**答案:A**8. C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI 3.14159D. #define PI 3.14159;**答案:A**9. 在C语言中,以下哪个选项是正确的结构体定义?A. struct Point { int x, y; };B. struct { int x, y; } Point;C. struct Point { int x; int y; };D. struct { int x; int y; };**答案:C**10. C语言中,以下哪个选项是正确的指针声明?A. int *p;B. int p*;C. *int p;D. int *p[];**答案:A**二、填空题(每题2分,共20分)1. 在C语言中,用于输入的函数是________。
2005—2006学年第二学期《程序设计语言(C)》参考答案和评分标准专业班级姓名学号开课系室软件工程系考试日期 2006年7月3日程序设计语言(C)试卷(B 卷)答题卡说明:1.选择题和判断题必须填在答题卡上才有效,综述题写在指定位置。
2.本试卷共13页,不得拆开。
一、 单项选择题(正确的答案涂黑或画圈,20分)二、 读程序填空题(在空格处填写正确答案,20分)三、编程题(60分,在下面的空白处编写程序)1、编程计算下面函数的值,其中x 由键盘输入。
(12分) -1 x≤-1 y= xe -1<x<1(x+1)2x≥1参考答案:#include <math.h>main(){int x。
float y。
printf("input x \n")。
scanf("%d",&x)。
if(x<=-1) y=-1。
else if(x>-1 && x<1) y=exp(x)。
else y=(x+1)*(x+1) 。
printf("%f",y)。
}[评分标准]:头文件、程序框架占2分;读入x值占1分;每个分支语句各占3分,共9分。
2.一球从200M高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第15次落地时,共经过多少M?第15次反弹多高?(6分)参考答案:#include <stdio.h>main( ){ float sn=200.0,hn=sn/2。
int n。
for(n=2。
n<=15。
n++){ sn=sn+2*hn。
hn=hn/2。
}printf(“第15次落地共经过%fM\n”,sn)。
printf(“第15次反弹%fM\n”,hn)。
}[评分标准]:头文件、程序框架占2分;变量初始化占1分;for循环占3分。
3.编写一函数sum,求二维数组(M*M)上三角(含对角线)之和。
《C语言程序设计》B卷一.单选题(2分×15题)1.设有如下定义:struct jan{int a;float b;}c2,*p;若有p=&c2;则对c2中的成员a的正确引用是:( )A. (*p).c2.aB. (*p).aC. p->c2.aD. p.c2.a2. C语言中最简单的数据类型包括( )A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型3.设 int x=1, y=1; 表达式(!x||y--)的值是( )A. 0B. 1C. 2D. -14.为了避免在嵌套的条件语句if――else中产生二义性,c语言规定:else子句总是与( )配对。
A.缩排位置相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if5.若有说明:int a[3][4];则对a数组元素的非法引用是( )A. a[0][2*1]B. a[1][3]C. a[4-2][0]D. a[0][4]6.以下程序的运行结果为( )#include <stdio.h>void main(){char s[] = {"012xy"};int i, n = 0;for (i = 0; s[i]; i++) if (s[i] >= 'a' && s[i] <= 'z') n++; printf("%d\n", n);}A. 0B. 2C. 3D. 57.以下程序的输出结果是( )#include <stdio.h>void main(){int a[5] = {1, 2, 3, 4, 5}, b[5] = {0, 2, 1, 3, 0}, i, s = 0; for (i = 0; i < 5; i++) s += a[b[i]];printf("%d\n", s);}A. 6B. 10C. 11D. 158. 对两个数组a 和b 进行如下初始化char a[] = "ABCDEF";char b[] = {'A','B','C','D','E','F'};以下叙述正确的是( )A. a 与b 数组完全相同B. a 与b 长度相同C. a 和b 中都存放了字符串D. a 数组比b 数组长9. 在定义int a[3][4][2]; 后,第20 个元素是( )A. a[2][1][1]B. a[1][0][1]C. a[2][0][1]D. a[2][2][1]10. 执行下面的程序段后,变量k 的值为( )int k = 3, s[2];s[0] = k;k = s[1] * 10;A. 无法确定B. 33C. 30D.1011. 定义了一维int 型数组a[10] 后,下面错误的引用是( )A. a[0] = 1;B. a[0] = 5*2;C. a[10] = 2;D. a[1] = a[2] * a[0];12. 若有数组名作为函数调用时的实参,则实际上传递给形参的是( )A. 数组首地址B. 数组第一个元素的值C. 数组中全部元素所占内存字节数D. 数组元素的个数13.若有语句char s1[10], s2[10] = {"books"};则能将字符串books 存放到数组s1的正确语句是( )A.strcpy(s1, s2);B.s1 = {"books"};C.s1 = s2;D.strcpy(s2, s1);14. 若要定义一个具有5元素的整型数组,以下错误的定义语句是( )A. int a[5] = {0};B. int a[] = {0, 0, 0, 0, 0};C. int a[2+3];D. int i = 5, a[i];15.下列描述中不正确的是( )A. 字符型数组中可能存放字符串。
本文由斯文卡特贡献 doc文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
B卷 2005— 2005—2006 学年第二学期 《程序设计语言(C)》试卷 程序设计语言(C)》 (C) 专业班级 姓 学 名 号 软件工程系 2006 年 7 月 3 日 开课系室 考试日期 题 号 一 二 三 总分 得 分 阅卷人 程序设计语言(C)试卷( 程序设计语言(C)试卷(B 卷)答题卡 (C)试卷 说明: 选择题和判断题必须填在答题卡上才有效,综述题写在指定位置。
说明:1.选择题和判断题必须填在答题卡上才有效,综述题写在指定位置。
不得拆开。
2.本试卷共 13 页,不得拆开。
得分 1 2 3 4 5 6 7 8 9 10 A A A A A A A A A A 一、 B B B B B B B B B B 单项选择题(正确的答案涂黑或画圈,20 单项选择题(正确的答案涂黑或画圈,20 分) C C C C C C C C C C D D D D D D D D D D 11 12 13 14 15 16 17 18 19 20 A A A A A A A A A A B B B B B B B B B B C C C C C C C C C C D D D D D D D D D D 得分 二、 读程序填空题 (在空格处填写正确答案,20 分) 在空格处填写正确答案, ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ 1 一、单项选择题(每题 1 分, 20 分) 单项选择题( 1. 若 x、i、j、k 都是整型变量,则计算下面表达式后 x 的值为。
x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 2. 语句 #include 的功能是。
A) 定义 stdio.h C) 声明 stdio.h B) 将 stdio.h 包含到语句所在的程序中 D) stdio.h 包含了语句所在的程序 3. 下列四组选项中,均不是 C 语言关键字的选项是。
A) DEFIN B) getc C) include D) while IF char case go TYPE printf scanf pow 4. 下面正确的字符常量是。
A) “c” B) ‘K’ C) ‘’ D) ‘23’ 。
5. 下列四组选项中,均是合法转义字符的选项是 A) ‘\”’ B) ‘\’ C) ‘\018’ D) ‘\\0’ ‘\\’ ‘\017’ ‘\f’ ‘\101’ ‘\n’ ‘\”’ ‘xab’ ‘xlf’ 6. 已知字母A的ASCII码为十进制数65, 且c2为字符型, 则执行语句c2=‘A’+‘6’-‘3’后, c2中的值为。
A) D B) 68 C) 不确定的值 D) C 7. 设有说明语句:char w; int x; float y; double z;则表达式 w*x+z-y 值的数据类型为 。
A) float 8. B) char C) int D) double 。
判断 char 型变量 ch 是否为大写字母的正确表达式是 B) (ch>=‘A’)&(ch<=‘Z’) A) ‘A’<=ch<=‘Z’ C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 9. 若希望当 A 的值为奇数时,表达式的值为“真”,A 的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是 。
A) A%2==1 B) !(A%2==0) C) !(A%2) 。
D) A%2 10. 以下程序的运行结果是 void main() 2 { int a,b,d=241; a=d/100%9; b=(-1)&&(-1); printf(“%d,%d”,a,b); } A) 6,1 11. 设有程序段 int k=10; while(k==0) k=k-1; B) 2,1 C) 6,0 D) 2,0 这下面描述中正确的是。
A)while 循环执行 10 次 C)循环体语句一次也不执行 B)循环是无限循环 D)循环体语句执行一次 12. 语句 while(!E);中的表达式!E 等价于。
A)E==0 B)E!=1 C)E!=0 D)E==1 13. 若 i 为整型变量,则以下循环执行次数是。
for(i=2;i==0;) printf("%d",i--); A)无限次 B) 0 次 C) 1 次 D) 2 次 14. 以下为一维整型数组 a 的正确说明是 。
A)int a(10); B)int n=10,a[n]; C)int n; scanf("%d",&n); int a[n]; D)#define SIZE 10; int a[SIZE]; 15. 以下正确的函数定义形式是 。
A)double fun(int x,int y){} B)double fun(int x; int y){} C)double fun(int x, int y);{} D)double A)值 C)名 17. 若有说明语句 char a[]="It is mine"; char *p="It is mine"; fun(int x,y);{} B)地址 D)一个标志 16. 变量的指针,其含义是指该变量的。
3 则以下不正确的叙述是. A)a+1 表示的是字符 t 的地址 B)p 指向另外的字符串时,字符串的长度不受限制 C)p 变量中存放的地址值可以改变 D)a 中只能存放 10 个字符 18. 若执行 fopen 函数时发生错误,则函数的返回值是 A) 地址值 B) 0 C) 1 。
D) EOF 19.若要用fopen函数打开一个新的二进制文件, 该文件要既能读也能写, 则文件方式字符串应 是。
A)"ab+" B)"wb+" C)"rb+" D)"ab" 20. 下方程序答案正确的是。
# include struct STU { int num; float TotalScore; void f(struct STU p) { struct STU s[2]={{20044,550},{20045,537}}; p.num = s[1].num; } main() { struct STU s[2]={{20041,703},{20042,580}}; f(s[0]); printf("%d %3.0f\n", s[0].num, s[0].TotalScore); } 程序运行后的输出结果是 A) 20045 537 B) 20044 550 C) 20042 580 D) 20041 703 p.TotalScore = s[1].TotalScore; }; 二、读程序填空(每空 2 分,共 20 分) 读程序填空( 1.main() { int i,j,x=0; for(i=0;i<3;i++) { x++; for(j=0;j<=3;j++) { if (j%2) continue; 4 x++;} x++;} printf(“x=%d\n”,x); } 则程序的执行结果为_ _⑴_。
2.下面程序为以每行 4 个数据的形式输出数组 a,请填空。
#define N main() {int a[N],i; for(i=0;i<N;i++) scanf("%d", ⑵); for(i=1;i<=N;i++) {if ( ⑶) printf("\n"); 20 printf("%3d",a[i-1]); } printf("\n"); } 3.下面程序为把数组 a 中数据复制到数组 b 中并输出。
#define M 5 void main ( ) { int i, a[5] = {23, 15, 50, 3, 21}; int b[M]; int *p = a, *q = b; for ( i = 0; i < 5; i++) ⑷ ; printf ("Output these numbers:\n"); ⑸ ; for ( i = 0; i < M; i++) printf ("%d ",*q++); printf ("\n"); } 4.以下 fun 函数的功能是: 在第一个循环中给 a 数组元素依次赋 1,2,3,4,5,6,7,8,9,10 ; 在第二个循环中 a 数组元素中的值对称折叠,变成 1,2,3,4,5,5,4,3,2,1 ; fun ( int ⑹ ) 5 { int i ; for ( i=1; i<=10; i++) for ( i=0; i<5; i++ ) ⑺ ⑻ =i; = a[i] ; } 5. 以下程序的功能是输出如下形式的方阵: 13 14 15 16 9 5 1 请填空。
main() { int i,j,x; for(j=4; j { ⑼ ; j--) 10 11 12 6 2 7 3 8 4 for(i=1; i<=4; i++) { x=(j-1)*4 + ⑽ printf("%4d",x); printf("\n"); ; } } } 6 得分 在下面的空白处编写程序) 三、编程题(60 分,在下面的空白处编写程序) 编程题( 1、编程计算下面函数的值,其中 x 由键盘输入。
(12 分) -1 y= x≤-1 -1<x<1 ex (x+1) 2 x≥1 7 2. 一球从 200 米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第 15 次落 地时,共经过多少米?第 15 次反弹多高?(6 分) 8 3.编写一函数 sum,求二维数组(M*M)上三角(含对角线)之和。
(12 分) 9 4. 从键盘上输入数组 str(长度不大于 100),再从键盘上输入一个字符,从数组 str 中删除 该字符,并输出删除字符后的字符串。
(12 分) 10 5. 找出数组 a[N]中的最大数及其下标。
(10 分) 11 6.编写子函数 search,从字符串 str 中查找某字符 ch(str、ch 由主函数提供)第一次出现的 位置和出现的次数;函数返回字符的位置,若串 str 中没有字符 ch,则返回-1。
比如:当 str 为"abmcmnkt",ch 为'm'时,位置为 3,次数为 2。
要求:不允许使用全局变量。
主程序部分源代码如下。
分) (8 #include int search(char str[], char ch, int *p) { } main() { int k,m; char string[20] ,ch; printf("input a string and a character\n"); gets(string); ch=getchar(); k=search(string,ch,&m); printf("the first position is %d and the number of this character is %d\n",k,m); } 121。