版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、选择题(1-10 每题 1 分,11-30 每题 1.5 分,共 40 分)1. 下列选项中,可以作为用户标识符的是(C)A) void B) 8_8 C) _a_0 D) a*b在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。 C 规定,标识符只能是字母 (A,az)、数字、下划线组成的字符串,并且其第一个字符必须是字母或下划线 。2. 若有定义:float a=22;int i=0,k=18; 则不符合 C 语言规定的赋值语句是(C)k=i+;)i ()(); C)i=a%11; )k;3. 若执行了语句:float x=1008;
2、int a=15; 则表达式(int)(x+y)%7/17 的值为(C)A) 23B) 1C) 0D)无法确定4. 若有定义语句:int a=1;double b=3.14;,则表达式+a+b的结果的类型是(C)A)charB)intC)doubleD)float5. 如有定义语句:int 在其后执行语句 z=0.9+x/y,则 z 的值为()A)1.9B)1 C)2 D)2.4因为 x/y中的在 、y都是整型时是取整除,就是说取商的整数部分,显然 12/8得 1余 ,所以得数为 ;而 z被声明的是整型,它只接收整数而不理会小数部分,故尽管 0.9+x/y=0.9+1=1.9,但把 1.9赋给
3、 z后,z只接受了 1这个整数部分。6. 以下是 if语句的一种形式:if(表达式)语句其中关于“表达式”的说明正确的是:()A)必须是逻辑表达式B) 必须是关系表达式C) 必须是逻辑表达式或关系表达式D)可以是任意合法的表达式7. 若有定义:int 通过语句 scanf(“%d”,&a,&b);,能把整数 3 赋给变量 ,5赋给变量 b的输入数据是(C)A)3 5B)3,5C)3;5D)35“”8. 若有定义语句:int 执行表达式()(k1=k1k2)后,k1和 k2的值分别为A)0和 1 B)0和 20C)10和 1D)10和 201k1k2 不成立,k1=0;与运算前面部分为假,程序直
4、接执行下一语句,因此 k2=k2k1没有被运行,k2依然等于 ,所以输出 ,k2=20.追问也就是说,在逻辑和运算符中,当第一个(左边)的值为 0时,第二个(右边)的运算就不再执行?可以这样理解吗?回答是的。同理逻辑或运算第一个为真是就不执行后面的表达式,直接到下一语句9. 下列语句中正确的是:()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; 以下能够代表数组元素 的是:()A)
5、a+4 B) *(p+4)11.有以下程序C) *a+4 D) *p + 4#include int main()int a=1,b=0;if(-a)表示当 a自减 1后为零,即为假,则不继续执行b+;else if(a=0)b+=2;elseb+=3;pn”,b)return 0;程序运行后的输出结果是 (C)A)0 B)1 C)2D)312. 下列条件语句中输出结果与其他语句不同的是 AA)if(a) %dn,x); else printf(%dn,y);B)if(a=0) printf(%dn,y); else printf(%dn,x);C)if(a!=0) printf(%dn,x)
6、; else printf(%dn,y);D)if(a=0) %dn,x); else printf(%dn,y);13. 有以下程序:#include void main() int a=7;2while(a-);pn”,a);程序运行后的输出结果是 ()A) -1B)0 C)1 D)7a-是先判断 a的值是否等于 0然后将 a的值减去 1如 while(1-)这个循环次数为1次,而 while(-a)与之不同如 的循环次数为 1次14. 以下不能输出字符 A 的语句是 B65,字符 a的 ASCII码值为 97)(注:字符 A 的 ASCII 码值为printf(“%cn”,a-32);C
7、)n”,65);“%dn”,A);printf(“%cn”,B-1);15. 有以下程序(注:字符 a的 ASCII码值为 97)#include void main() char *s=“abc”;doprintf(“%d”,*s%10);+s;while(*s);程序运行后的输出结果是A)abcB)789C)7890D)97989816. 若有定义语句:double 以下叙述中错误的是定义语句中的*号是一个地址运算符B)定义语句中的*号是一个说明符C)定义语句中的 p只能存放 double类型变量的地址定义语句中,*p=&a把变量 a的地址作为初值赋给指针变量 p17. 有以下程序:#in
8、clude double f(double x);void main() double a=0; int i;for(i=0; i30; i+=10) a+=f(double)i);pn”,a);double f(double x)return x*x+1;程序运行后的输出结果是A)503B)401C)500D)1404318. 若定义语句:int 以下不能使变量 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
9、 num24=1,2,3,4,5,6;D)int num4=1,2,3,4,5,6;20. 有以下程序#include void fun(int *p)n”,p5);main()int a10=1,2,3,4,5,6,7,8,9,10;fun(&a3);程序运行后的输出结果是A)5B)6 C)8 D)921.有以下函数int fun(char *x,char *y)int n=0;*y)&*x!=0)x+;y+;n+;return n;函数的功能是查找 x和 y所指字符串中是否有0B)统计 x和 y所指字符串中最前面连续相同的字符个数C)将 y所指字符串赋给 x所指存储空间统计 x和 y所指字
10、符串中相同的字符个数22. 数学上的式子 1x10怎么用 C语言的表达式来表示:A) 1x10 B) x1 & 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);4D)if(strcmp(s1,s2)!=0) puts(s1);24. 以下程序的主函数中调用了在其前面定义的 fun函数#includevoid main()dou
11、ble 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)pn”,f(n+)程序运行后的输出结果是A)1,2B)1,1C) 2,3D) 3,326. 若有定义语句:int ,以下选项中错误的赋值表达式是A)
12、a=(b=4)=3;C)a=(b=4)+c;B)a=b=c+1;D)a=1+(b=c=4);27. 有以下程序#includevoid main() int s;scanf(%d,&s);while(s0) switch(s) case1:printf(%d,s+5);5case2: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. 有以下程序#in
13、clude#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) 12B) 11C) 10D) 930. 设有定义:struct char mark12;int num1;double num2; t1,t2;,若变量均已正确赋初值,则以下语句中错误的是A)t1=t2;C)t2.mark
14、=t1.mark;B)t2.num1=t1.num1;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】)6i+;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=
15、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】7printf(a%d%d=%d, row, col, sum );4、以下程序是从键盘输入字符统计小写字母个数,读入字符 #时停止统计
16、,请填空:void main()int n=0,c;while( (c=getchar()!=【11】 )if(【12】) n+;printf(%dn,n);5、以下程序是找年龄最大的人,输出其姓名和年龄。请将以下程序补充完整:#define N 4struct 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、以下程序实现数组的逆
17、序输出,请填空:#define N 58void 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=ge
18、tchar();【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);9void func2(int i)printf(%c,sti);if(i3)i+=2;func1(i);void main() int i=0; func1(i)
19、; 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;10void main()int a=18,2,5,4,7,6,i,j,
20、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)。11参考答案一、选择题(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 s1i != 02 s1i+ = s2j+3 s1i = 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国加长货叉托盘车项目投资可行性研究报告
- 2024-2030年中国中药材马钱草行业发展潜力预测及投资战略研究报告
- 2024年智能仪器仪表市场分析报告
- 2025用房屋作抵押借款合同
- 2024-2030年中国青海省旅游行业市场调查研究及投资前景展望报告
- 2019-2025年中国烟草物流行业发展潜力分析及投资方向研究报告
- 钨砂项目可行性研究报告
- 2025企业用工合同的范本
- 2025自动售货机购买合同
- 2025提前解除合同的赔偿办法
- 《鸿蒙智能互联设备开发(微课版)》全套教学课件
- 山西省晋中市2023-2024学年高一上学期期末考试 物理 含解析
- 装卸工安全培训课件
- 中成药学完整版本
- 安全与急救学习通超星期末考试答案章节答案2024年
- 2024-2025学年度广东省春季高考英语模拟试卷(解析版) - 副本
- 2024电力安全工器具及小型施工机具预防性试验规程
- 基于单片机的2.4G无线通信系统
- 《建筑力学》期末机考资料
- 广东省广州市2023-2024学年三年级上学期英语期中试卷(含答案)
- DB11T 1282-2022 数据中心节能设计规范
评论
0/150
提交评论