




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、选择题(1-10每题1分,11-30每题1.5分,共40分)1. 下列选项中,可以作为用户标识符的是(C)A) void B) 8_8 C) _a_0 D) a*b在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C 规定,标识符只能是字母(AZ,az)、数字(09)、下划线()组成的字符串,并且其第一个字符必须是字母或下划线。 2. 若有定义:float a=22;int i=0,k=18; 则不符合C语言规定的赋值语句是(C)A)k=i+; B)i =(i*k)=(i-k); C)i=a%11; D)k!a;3. 若执行了语句:float x=1008; int a=15; 则表达式(int)(x+y)%7/17的值为(C)A) 23 B) 1 C) 0 D) 无法确定4. 若有定义语句:int a=1;double b=3.14;,则表达式X+a+b的结果的类型是(C) A)charB)intC)doubleD)float5. 如有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y,则z的值为(B) A)1.9B)1C)2D)2.4因为x/y中的/在x、y都是整型时是取整除,就是说取商的整数部分,显然12/8得1余4,所以得数为1;而z被声明的是整型,它只接收整数而不理会小数部分,故尽管0.9+x/y=0.9+1=1.9,但把1.9赋给z后,z只接受了1这个整数部分。6. 以下是if语句的一种形式:if(表达式) 语句 其中关于“表达式”的说明正确的是:(D)A) 必须是逻辑表达式 B) 必须是关系表达式C) 必须是逻辑表达式或关系表达式 D) 可以是任意合法的表达式7. 若有定义:int a,b;,通过语句scanf(“%d;%d”,&a,&b);,能把整数3赋给 变量a,5赋给变量b的输入数据是(C)A)3 5 B)3,5 C)3;5D)35“%d;%d”8. 若有定义语句:int k1=10,k2=20;,执行表达式(B) (k1=k1k2)&(k2=k2k1)后,k1和k2的值分别为 A)0和1B)0和20C)10和1D)10和20k1k2不成立,k1=0;与运算前面部分为假,程序直接执行下一语句,因此k2=k2k1没有被运行,k2依然等于20,所以输出k1=0,k2=20.追问也就是说,在逻辑和运算符中,当第一个(左边)的值为0时,第二个(右边)的运算就不再执行?可以这样理解吗?回答是的。同理逻辑或运算第一个为真是就不执行后面的表达式,直接到下一语句9. 下列语句中正确的是:(A)A) char str10; str = “Hello”; B) char *str; str = “Hello”;C) char str10; str = “Hello”; D) char *str; str = “Hello”; 10. 设有定义 int a10, *p=a; 以下能够代表数组元素a4的是:(B)A) a+4 B) *(p+4) C) *a+4 D) *p + 411. 有以下程序#include int main()int a=1,b=0;if(-a)表示当a自减1后为零,即为假,则不继续执行 b+;else if(a=0) b+=2;elseb+=3;printf(“%dn”,b);return 0;程序运行后的输出结果是 (C)A)0B)1 C)2 D)312. 下列条件语句中输出结果与其他语句不同的是AA)if(a) printf(“%dn”,x); else printf(“%dn”,y);B)if(a=0) printf(“%dn”,y); else printf(“%dn”,x);C)if(a!=0) printf(“%dn”,x); else printf(“%dn”,y);D)if(a=0) printf(“%dn”,x); else printf(“%dn”,y);13. 有以下程序:#include void main() int a=7; while(a-);printf(“%dn”,a);程序运行后的输出结果是 (A) A) -1B)0 C)1 D)7a-是先判断a的值是否等于0然后将a的值减去1如while(1-)这个循环次数为1次,而while(-a)与之不同如while(-2)的循环次数为1次14. 以下不能输出字符A的语句是 B (注:字符A的ASCII码值为65,字符a的ASCII码值为97)A)printf(“%cn”,a-32);B)printf(“%dn”,A);C)printf(“%cn”,65); D)printf(“%cn”,B-1);15. 有以下程序(注:字符a的ASCII码值为97)#include void main() char *s=“abc”; doprintf(“%d”,*s%10);+s;while(*s);程序运行后的输出结果是 A)abcB)789 C)7890 D)97989816. 若有定义语句:double a,*p=&a;以下叙述中错误的是 A)定义语句中的*号是一个地址运算符B)定义语句中的*号是一个说明符C)定义语句中的p只能存放double类型变量的地址D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p17. 有以下程序:#include double f(double x);void main() double a=0; int i;for(i=0; i30; i+=10) a+=f(double)i);printf(“%5.0fn”,a);double f(double x)return x*x+1;程序运行后的输出结果是 A)503B)401C)500D)140418. 若定义语句:int year=2009,*p=&year;,以下不能使变量year中的值增至2010的语句是 A)*p+=1; B)(*p)+; C)+(*p);D)*p+;19. 以下定义数组的语句中错误的是 A)int num=1,2,3,4,5,6;B)int num3=1,2,3,4,5,6;C)int num24=1,2,3,4,5,6;D)int num4=1,2,3,4,5,6;20. 有以下程序#include void fun(int *p)printf(“%dn”,p5);main()int a10=1,2,3,4,5,6,7,8,9,10; fun(&a3);程序运行后的输出结果是 A)5B)6 C)8D)921. 有以下函数int fun(char *x,char *y)int n=0; while(*x=*y)&*x!=0)x+;y+;n+; return n;函数的功能是 A)查找x和y所指字符串中是否有0B)统计x和y所指字符串中最前面连续相同的字符个数C)将y所指字符串赋给x所指存储空间D)统计x和y所指字符串中相同的字符个数22. 数学上的式子 1x10怎么用C语言的表达式来表示:A) 1x10 B) 1x1 & x=10 D) 以上都不对23. 若有定义语句:char *s1=”OK”;*s2=”ok”;,以下选项中,能够输出“OK”的语句是 A)if(strcmp(s1,s2)=0) puts(s1);B)if(strcmp(s1,s2)!=0) puts(s2);C)if(strcmp(s1,s2)=1) puts(s1);D)if(strcmp(s1,s2)!=0) puts(s1);24. 以下程序的主函数中调用了在其前面定义的fun函数#includevoid main()double a15,k;k=fun(a);则以下选项中错误的fun函数首部是 A)double fun(double a15)B)double fun(double *a)C)double fun(double a)D)double fun(double a)25. 有以下程序:#includeint f(int m) static int n=0; n+=m; return n;void main() int n=0; printf(“%d,”,f(+n);printf(“%dn”,f(n+);程序运行后的输出结果是 A)1,2B)1,1 C) 2,3D) 3,326. 若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3; B)a=b=c+1;C)a=(b=4)+c; D)a=1+(b=c=4);27. 有以下程序#include void main() int s;scanf(%d,&s);while(s0) switch(s) case1:printf(%d,s+5);case2:printf(%d,s+4); break;case3:printf(%d,s+3);default:printf(%d,s+1);break; scanf(%d,&s); 运行时,若输入1 2 3 4 5 0,则输出结果是A)6566456 B)66656 C)66666 D)666665628. 有以下程序#include #define S(x) 4*(x)*x+1void main() int k=5,j=2; printf(%dn,S(k+j);程序运行后的输出结果是A)197 B)143 C)33 D)2829. 有如下程序,其中k的初始值为八进制数#include void main() int k=011;k+;printf(“%dn”, k); 则程序运行后的输出结果是:A) 12 B) 11 C) 10 D) 930. 设有定义:struct char mark12;int num1;double num2; t1,t2;,若变量均已正确赋初值,则以下语句中错误的是A)t1=t2; B)t2.num1=t1.num1;C)t2.mark=t1.mark; D)t2.num2=t1.num2;二、填空题(【1】-【10】每空1分,【11】-【20】每空2分,共30分)1、以下程序实现两个字符串的连接。不用strcat函数,填空请将程序补充完整void str_cat(char S180,S240) int i=0,j=0; while ( 【1】) i+;while (S2j!=0) 【2】 【3】 printf(“n连接后的字符串为: %s”, S1);2、以下程序计算1!+2!+10!的值,请填空:voidmain() int f=1,i,j,sum=0;for(j=1;j=10;j+) for(i=1;【4】; i+) 【5】 【6】 f=1; printf(1!+2!+10!=%d,sum);3、请将以下程序补充完整,实现求二维数组中最大元素值及其行列号。void main() int a55, i, j; for (i=0; i5; i+) for ( j=0; j5; j+) scanf(“%d”, &aij); int sum = a00, row,col; for (i=0; i5; i+) for ( j=0; j5; j+) if (【7】) 【8】 【9】 【10】 printf(“a%d%d=%d”, row, col, sum ); 4、以下程序是从键盘输入字符统计小写字母个数,读入字符#时停止统计,请填空:void main()int n=0,c; while( (c=getchar()!=【11】 ) if(【12】) n+; printf(%dn,n);5、以下程序是找年龄最大的人,输出其姓名和年龄。请将以下程序补充完整:#define N 4 struct manchar name20; int age; personN=“li”,18,”wang”,19,”zhang”,22,”sun”,20;void main() struct man *q,*p;int i, m=0;p = person;q=person;for (i=0; iN; i+)if (mname, q-age);6、以下程序实现数组的逆序输出,请填空:#define N 5void main() int aN=9,6,8,4,1,i, temp;printf(“n original array: n”);for (i=0;iN; 【16】) printf(“%4d”, ai );for (i=0; 【17】; i+ ) temp = ai; 【18】 aN-i-1=temp;printf(“sorted array:n”);for (i=0; iN; i+)printf(“%4d”, ai);7 从键盘读取一个字符串,统计出现某特定字符个数. 请完善该程序:void main() int i=0,num=0;char str20,ch;ch=getchar();【19】while (stri!=0 ) if(【20】) num+; i+;printf(“the %c num is %dn”,ch,num);三、读程序,写出运行结果(每小题3分,共15分)1. void func1(int i); void func2(int i); char st=hello,friend!; void func1(int i) printf(%c,sti); if(i3) i+=2;func2(i); void func2(int i) printf(%c,sti); if(i3)i+=2;func1(i); void main() int i=0; func1(i); printf(n);2.void main() int i=0,s=0;doif(i%2)i+;continue;i+;s+=i;while(i7);printf(%dn,s);3.void f(int x,int y)int t;if(xy)t=x;x=y;y=t;void main() int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c);printf(%d,%d,%d,a,b,c);4.void fun(int *a,int i,int j)int t;if(ij)t=ai;ai=aj;aj=t;void main() int a=18,2,5,4,7,6,i,j,s=0,m=5;for(j=0;j6;j+) fun(a,s,m); s+; m-; for(i=0;i6;i+)printf(%d ,ai);5.#define A 4#define B A-2void point(char *t)t+=B/2;*t=*t+1; void main() char b=abcdef,*p=b; point(p); printf(%sn,b); 四编程题(第一题7分,第二题8分,共15分)1. 通过键盘输入33的整数矩阵,编程求出矩阵主对角线上元素之和。 2. 编写函数,其功能是在字符串 s1的指定位置 f 前插入字符串 s2,要求函数首部为:void insert(char *s1,char *s2,int f)。参考答案一、选择题(1-10每题1分,11-30每题1.5分,共40分)1-5 CCCCB6-10 DCBBB11-15 CDABB16-20 AADCD21-25 BCDDA26-30 AABCC二、填空题(每题2分,共30分)1 s1i != 0 or
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 时间管理培训课程
- 时间的测量教学课件
- 创意美术夏季课件
- 二零二五年度建筑地基基础工程监理合同
- 2025版电子产品生产企业员工受伤赔偿协议
- 二零二五年度实体书店转让合同样本
- 2025版集装箱清洗消毒与保养服务合同
- 二零二五年度企业员工零用金补助与报销协议
- 二零二五年度木材现货交易市场准入合同
- 2025版青岛家居装饰装修工程临时设施租赁合同
- 2025年秋招:新媒体运营笔试题目及答案
- 工作总结及工作思路(输电运维班)
- 2025内蒙古森工集团招聘工勤技能人员3100人笔试参考题库附带答案详解析集合
- 登销记以及运统46系统运用21课件
- 动物育种学第四章生产性能测定
- DB32T 4252-2021 民用建筑燃气安全规范
- 事务所合同管理制度
- 最新五年级上册音乐教案
- 河蟹的营养需要与饲料优化技术
- GHTF—质量管理体系--过程验证指南中文版
- 数学用表A4(锐角三角函数)
评论
0/150
提交评论