版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、 指针运算,字符串是指针2、 是转义符,n是一个字符计算机程序设计基础试卷一、 从下列四个供选择的答案中选出最正确的一个答案(每题2分,共20分)1、 语句printf(“%s%d”,”Hello World!”+2,strlen(“next”); 将输出:A) llo World!4 B) Hello World!2 C) llo World!5 D) 上述语句语法有错运算符的优先级:算术运算符(+)优先于逻辑运算符(&&), 14&&15=12、 执行下列程序段后,a值为:int a,b;a=15; b=-1;同时整除要用&&,整除要用!
2、(i%2)a=a+b&&a; A) 15 B) 0 C) 1 D) 163、 判断整型变量i,j可同时被2整除的表达式(i,j同时被2整除返回1,否则返回0)是:A) !(i%2)|!(j%2) B) !(i%2)&&!(j%2) C) (i%2)&&(j%2) D) (i%2)|(j%2)4、 C语言while语句中,用于判断循环结束的表达式是:A)关系表达式 B)逻辑表达式 C)算术表达式 D)任意表达式 1 2 3 4 5s>i F F F F Ts 0 0 1 3 6i 0 1 2 3 4 5、 下列for循环,将执行for(i=0
3、,s=0; i<10; i+) if(s>i) break; else s += i;A)10次 B) 1次 C) 3次 D) 以上均不是6、 下列程序段执行后s值为:i 1 2 3 4 5 6 7 8 9 !(i%2) F T F T F T F T Fs 1 1 4 4 9 9 16 16 25int i=1,s=0;do if(!(i%2) continue; s += i; while(+i<10);A)1 B) 45 C) 25 D) 以上均不是7、 对于int a;则表达式1<=a<=5值是:<=自左而右运算(1<=a)<=5 0 |
4、 1 <=5 = 1A) 0 B) 1 C) 不定 D) 表达式语法有错8、 执行下列语句后,a的值为:M(a,b)>6a=b>6a=(b>6) 1int a=12, b=7;#define M(x,y) x=y;M(a,b)>6;A) 0 B) 1 C) 12 D) 7*p=s,*q=s+1相差一个结构(2个整数)(int *)q (int *)p相差2个整数9、 对于以下结构定义:struct int x; int y; s10,*p=s,*q=s+1; 则表达式(int *)q (int *)p的值等于: A) 1 B) 2 C) 4 D)表达式语法有错10
5、、 将p定义为数组指针,数组元素类型为字符指针,数组大小为10,可写成:A)char *p10; B)char *(*p)10; C) char (*p)10; D)以上均不是11、 对于以下程序段,运行后i值为:char (*p)10;为指针数组char *(*p)10;为数组指针int i=0,a=1;switch(a) case 1: i += 1; /* a=1 与这个case匹配运算后再往下流*/ case 2: i +=2; break; /* 执行后i=3 且退出 */ case 3: i+=3;A) 1 B) 3 C) 6 D) 上述程序有语法错误12、 对于以下递归函数f,调
6、用f(4),其返回值为:f(4)àf(4-2)+4à(f(2-2)+2)+4àf(0)+2+4=6int f(int n)( if(n) return f(n-2)+n; else return n;char *s;只定义了一个指向字符的指针,而没有指向内存空间A) 6 B) 4 C) 0 D) 无限递归13、 对于下列程序段,当输入为123,执行后: char *s; scanf(“%s”,s); A)s值为”123” B)编译时出错 C)编译不出错,但程序有问题 D)以上均不是14、 对于如下说明,则有意义的正确表达式是: int *p3,a3; A) p=a
7、 B) p0=a0 C) p0=a D) p0*=215、 对于struct node char s10; int i; p4;下列哪个赋值是正确的: A) p->i=2 B) p0.s=”abc” C) p0->i=2 D) p->s=a二、 填空题(每题2分,共40分)1、 用下列for循环将大写字母逆序输出(即从Z到A),其语句应为:for(i=0;i<26;i+) (1) putchar(Z-i);2、 执行完下列语句段后,i,j值分别为 (2)i=15,j=10 int i,j;j=i=5;i+=j+=i; /* i+=(j+=i); i+= j, j=10
8、; i=15 */3、 对于如下定义,则通过指针p来存取aij的表达式为: (3)*(p+i*20+j) int a1020,*p=&a00;4、执行完下列语句段后,i值为: (4) 1 int i;f(1): x=0,k=1,return 0f(f(1)=f(0): x=1,k=0, return 1 int f(int x) static int k=0; int t; t=k; k=x; x=t; return x; i=f(f(1);5、在C语言程序中,若对函数类型未加显式说明,函数的隐含类型为: (5) int 6、执行下列语句段后,将输出: (6)ello world! s
9、tatic char *s=”hello world!”; printf(“%s”,+s); (c<a|c>z)&&(c<A|C>Z)7、对于char c;判断c不是大或小写字母的表达式(不是返回1,否则返回0)为: (7) 8、将A定义为整型函数指针类型名,可写为: (8)typedef int (*A)(); 9、实现字符串拷贝的函数strcpy为: void strcpy(char *s,char *t) while( (9)* s+ = *t+ ); 10、下面的C代码段用于计算s=x-x3/3+x5/5-x7/7+x9/9-的近似值(xn表示x
10、的n次方) i=1; t=x; s=t; while(fabs(t)>0.00001) /* fabs(t): t的绝对值 */ i+; t=-t * (10) x*x*(2*i-3)/(2*i-1) ; s+=t; 11、下面的程序把输入信息直接复制到输出,在复制过程中,用t符号代替制表符,用b符号代替退格符,用符号代替右斜杠,这样这些符号都可以成为可见符号。#include <stdio.h>main() int c; while(c=getchar()!=EOF) if(c=t) (11) printf(“t”) ; /* 二个”代表一个” */ else if(c=b
11、) (12) printf(“b”) ; else if(c=) (13) printf(“”) ; else putchar(c); 12、下面是统计链表first中元素个数的C语言程序段struct link struct link *next;datafirstdatadata char data;0struct link *first;Pstruct link *p;int c;c=0;p=first; while( (14) p ) p= (15) p->next ; (16) c+ ;13、int i=0,s=0,a10; /* 将a数组中非负数加到s中 */while(i&
12、lt;10)&&(ai>=0) s+=ai+;等价于int s=0,a10,*p=a;for( (17) ;p<a+10;s+=*p+ ) if(*p<0) break;14、下面的程序Remove_blank删除字符串中所有空格 Remove_blank(char *s) int i,tmp; char tmpstr81; for(i=0,tmp=0;si!= (18) 0 ; i+) if(si!= ) /* 只对非空格处理 */ tmpstr (19) tmp+ = si; tmpstrtmp= (20) 0 ; /* 加上字符串结束标志 */ strc
13、py(s,tmpstr); 三、 理解程序,并回答相应问题(共20分)1、程序 #include <stdio.h> int f(int x,int a,int n) /* 在an中二分法检索x */ int low,high,mid; low=0; high=n-1; while(low<=high) mid=(low+high)/2; if(x>amid) high=mid-1; else if(x<amid) low=mid+1; else return(mid); /* 返回x的下标值 */ return(-1); main() /* 主程序 */ sta
14、tic int a=4,0,2,3,1; /* 初始数据5个 */ int i,t,j; for(i=1;i<5;i+) /* 从大到小排序 */ t=ai; j=i-1; while(j>=0&&t>aj) aj+1=aj; j-; aj+1=t; /* 排序后a=4,3,2,1,0 */ printf(“%dn”,f(3,a,5); /* 调用f(3,a,5),即求3的位置,是1 */ 问题1:程序执行后的输出结果是 1 。问题2:若将程序的输出语句改为:printf(“%dn”,f(5,a,5); 程序执行后的输出结果是 -1 。 /* 调用f(5,a,
15、5),即求5的位置,找不到为-1 */2、程序 #include <stdio.h> int cal(int a,int b,char op) /* 能计算*或+的计算器 */ if(op=*) return(a*b); else return(a+b); void main() int x,y,z,result; char op1,op2; scanf(“%d%c%d%c%d”,&x,&op1,&y,&op2,&z); /* 输入2+3*5 */ if(op1=+&&op2=*) /* 先+后* 表达式 */ result=
16、cal(x,cal(y,z,op2),op1); /*问题1当输入2+3*5时先算3*5,值为17 */ else /* 先*后+ 表达式 */ result=cal(cal(x,y,op1),z,op2); /*问题2当输入2+3*5时先算2+3,值为25 */ printf(“%dn”,result); 问题1:当输入为2+3*5时,上述程序将输出 17 。问题2:把op1=+&&op2=*中的op1,op2对调后,当输入为2+3*5时,上 述程序将输出 25 。3、程序 f(int n) int i,j; if(n%2|n=2) /* n是奇数或是2 显示错误*/ pri
17、ntf(“Error: %d is an odd number or equals to 2!n”,n); return; for(i=n-2;i>=n/2;i-) /* 对>2的偶数 */ for(j=2;i%j;j+); if(j!=i) continue; for(j=2;(n-i)%j;j+); if(j!=n-i) continue; printf(“%3d=%3d+%3d “,n,i,n-i); int test_data=6,8,10;main() int i; for(i=0;i<3;i+) f(test_datai); 问题1:程序输出的结果为 6=3+3
18、8=5+3 10=7+3 10=5+5 。 问题2:函数f(int n)的功能是: 对给定的>2的偶数,进行分解成两个质数之和的所有分解,但第一个和数(质数)必须在n-2至n/2范围内 。4、程序 #include <stdio.h> int k=0; /* k是全局变量 */ void f(int n) /* 求f(3); 是递归函数 */ k+; /* k1 2 3 ,4 5 6 7 */ if(n!=1) f(n-1); /* f(2) f(1) */ f(n-1); /* f(1) f(2) f(1) f(1) */ main() f(3); printf(“%d”,k); 问题:1 程序输出的结果为: 7 。 2 当n值范围为什么时,函数调用f(n)无限递归 n<=0 。四、 请按下列要求编程(10分)请编写一个带命令行参数的程序prog.c。当运行prog n1 n2 filename时将文本文件filename的第n1行到第n2行按原样在标准输出(终端)上输出;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 5296.6-2025消费品使用说明第6部分:家具
- 2026年中国水泥管等制品行业市场前景预测及投资价值评估分析报告
- 2026年中国螺旋输送泵行业市场前景预测及投资价值评估分析报告
- 2026年中国伺服液压振动台行业市场规模及投资前景预测分析报告
- 2025石家庄高新区招聘社区工作者73名笔试考试参考试题及答案解析
- 2026年云南云天化股份有限公司秋季招聘(185人)笔试考试参考题库及答案解析
- 2025年仁寿县从“三支一扶”计划人员中公开考核招聘乡镇事业单位工作人员考试笔试模拟试题及答案解析
- 员工手册培训幻灯片
- 肾囊肿超声监测方案
- 2025年墓碑安装合同违约责任协议
- 2025中国家庭教育服务行业发展现状及未来趋势报告
- 2025年无线电广播接收设备行业分析报告及未来发展趋势预测
- 江苏省徐州市云龙区2024-2025学年六年级上学期语文期中试卷(含答案)
- 2mm土工膜长丝土工布检测报告合格证
- 乳腺癌患者的术后护理
- 企业注销申请书模板
- 农业田间机器人课件
- 旅游政策与法规案例分析题
- 新版物业交割单
- 《汽车运用基础》考试复习题库及答案
- 人教版八年级上册数学全册单元测试卷
评论
0/150
提交评论