2022年程序设计方案部内部习题与答案 .docx

上传人:H****o 文档编号:60242268 上传时间:2022-11-15 格式:DOCX 页数:11 大小:63.05KB
返回 下载 相关 举报
2022年程序设计方案部内部习题与答案 .docx_第1页
第1页 / 共11页
2022年程序设计方案部内部习题与答案 .docx_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《2022年程序设计方案部内部习题与答案 .docx》由会员分享,可在线阅读,更多相关《2022年程序设计方案部内部习题与答案 .docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品_精品资料_程序设计部内部习题一、填空题如有如下说明,且int 类型占两个字节,就正确的表达为(A)struct st int a .int b2 .a.A. 结构体变量 a 与结构体成员a 同名,定义是合法的B. 程序只在执行到该结构体时才为结构体st 安排储备空间C.程序运行时为结构体st 安排 8 字节储备单元D.类型名 struct 可以通过 extern 关键字提前引用【解读】此题主要考查结构体的用法:结构体变量a 与结构体成员a 同名,定义合法:在程序编译的时候结构的定义并不会使系统为该结构安排内存空间,只有在说明结构变量时才安排内存空间.int a 占 2 个字节 int b

2、2 占 4 个字节.共 6 个.类型名shmct st不行以通过 extem 关键字提前引用.2、语句“ printf ”yboun ” .”的输出结果是(C).A. abhowareybou ybouC. howareyouD. ahowareybou【解读】“b ”格式符表示退格,功能是将它后面的字母把它前面的字母掩盖,导致“ b”格式符前面的字母不能输出.“ ”格式符表示输出单引号字符.“”格式符表示输出反斜线字符.3、字符串 %ABCDEF 的长度是( B )A.11 B.10 C.5D.3【解读】此题涉及字符串最基本的2 个概念:字符串的长度是指字符串中字符的个数, 但不包括字符串终

3、止符:以反斜杆v 开头的特别字符序列,意思是把反斜杆后面的字符序列转换成特定的含义,而不是原先的含义,不包含在字符串长度之内,连同后面的字符为一个长度.而 %也是如此.4、有以下程序#include void mainchar a30,b30 .可编辑资料 - - - 欢迎下载精品_精品资料_scanf%s,a .getsb.printf%sn%sn,a,b .输入 how are you. I am fine ,程序的运行结果是(C)A. how are you.B. how I am fine are you. I am fineC. how are you . I am fineD. h

4、ow are you. I ok【学问点】考查数组5、有以下程序#include mainint b33=0,1,2,0,1,2,0,1,2,i,j,t=0.fori=0 . i=i .j-t+=bij .printf%dn,t .程序运行后的结果是(C )A.4B.3C.8D.9【学问点】循环结构【解读】这道题主要考查的是二维数组的有关学问.在两层for 循环语句中,累加上三角元素,所以程序执行的过程为t=b00+bO1+b02+b11+b12+b22=8.6、有以下程序#include mainint x=1,y=0,a=0,b=0 .switchxcase 1:switchycase 0

5、:a+ .break.case 1:b+.break.case 2:a+.b+ .break.case 3:a+.b+ .可编辑资料 - - - 欢迎下载精品_精品资料_printfa=%d,b=%dn,a,b.程序执行的结果是(D )A.a=1 ,b=0B. a=2,b=2C. a=1,b=1D. a=2 , b=1【学问点】挑选结构【解读】此题考查了breakswitch 结构的内容.在Ccasecase标号的内容后case 常量表达式只switch连续执行了外部 switch 结构的 case 2 分支.最终 a和 b 的值分别为 2 和 17、如有定义 int a5,*p=a.就正确引

6、用数组元素的是(D )A.*&a5 B.*a+2 C.*p+5D.*a+2【学问点】指针【解读】此题考查通过指针引用数组元素.用指针引用数组有以3 种形式: p+n 与a+n 表示数组元素an 的的址, *p+n 与 *a+n 表示数组元素an . pn=*p+n ,都表示数组元素 an .选项 A 、B 没有这种引用形式.选项C, *p+5 是引用数组的第6 个元素, 而数组一共有5 个元素,显现越界.选项D , *a+2 引用数组的第3 个元素.8、设有以下说明,就不正确的表达式()union unint a.char b.float c .arr .A. arr 所占的内存长度等于成员c

7、 的长度B. arr 的的址和它的各成员的的址都是同一的址C. arr 可以作为函数参数D. 不能在定义 arr 时对它初始化【学问点】共用体【解读】此题主要考查联合体的内存使用:联合体所占用的内存空间为最长的成员所占用的空间, int 占 2 个字节, char 占 1 个字节, float 占 4 个字节,所以 arr 所占的内存长度等于成员 c 的长度: arr 的的址和它的各成员的的址都是同一的址.不能直接对arr 赋值,即不能在定义 arr 时对它初始化: arr 也不行以作为函数参数.9、以下说法正确选项().A. 宏定义是 C 语句,要在末行加分号可编辑资料 - - - 欢迎下载

8、精品_精品资料_B. 可以使用 #undefine 提前终止宏名的使用C. 在进行宏定义时,宏定义不能嵌套D. 双引号中显现的宏名也要进行替换【考点】宏替换,文件包含(带参数的宏定义和不带参数的宏定义,中止宏定义)【解读】此题考查宏的使用规章:字符替换格式:#define 标识符字符串,行末不加分号.双引号中显现的宏名不替换.假如提前终止宏名的使用,程序中可以使用#undefine .在进行宏定义时,宏定义能层层置换,能够嵌套.E. struct achar number100 .int age.float p6 . .定义一个数组: struct a number10 .假定文件已正确打开,

9、不能正确的从文件中读入10 名工人数据到数组b 中的是( )A.freadb,sizaeofstruct a,10,fp .B.fori=0 .i10 .i+ freadbi,sizeofstruct a,1,fp .C.fori=0 .i10 .i+ freadb+i,sizeofstruct a,1,fp .D.fori=0 .i5 .i+=2 freadb+i,sizeofstruct a,2,fp .【考点】文件【解读】数据块输入/ 输出函数的调用格式为:freadbuffer,size , count , fp ,其中: “buffer ”是一个指针,对于fread 来说,它是读入数

10、据的存放的址.“size”是要读写的字 节数. “ count”是要进行读写多少个size 字节的数据项. “ fp”是指文件型指针.选项B 中 bi 是一个数组,不是指针,需改为&bi .二:填空题1、/* 请补充函数proc ,该函数的功能是:把ASCII 码为偶数的字符从字符串str 中删除, 结果仍旧储存在字符串str 中,字符串 str 从键盘输入,起长度作为参数传入函数 proc .例如:输入 verybook, 输出eyook*/#include #include #define M 80int i,j .j=0.void procchar str,int nfori=0 . i

11、n .i+可编辑资料 - - - 欢迎下载精品_精品资料_strj=0 .void mainifstri%2.=0strj+=stri .可编辑资料 - - - 欢迎下载精品_精品资料_int i=0,strlen=0 .char strM .systemCLS .printfnInput a string:n.getsstr.whilestri.=0strlen+.i+ .procstr,strlen .printfn*display string *n.putsstr.4、以下程序运行后的输出结果是()#include void mainint a.a=intdouble3/2+0.5+i

12、nt1.99*2.printf%dn,a .【解读】由于3/2 的结果等于 1,再进行强制类型转换为双精度型,其值等于1.0,再加上0.5 等于 1.5.对于 int1.99*2 来说,先把1.99 进行类型转换为整型,得到1,再乘以 2,得到 2,再与前面的 1.5 相加等于 3.5,再进行整型转换得到3.5、以下程序段是从键盘输入的字符中统计小写字母的个数,用换行符终止循环.请填空int n=0,c .c=getchar .whilec.= n.if n+.可编辑资料 - - - 欢迎下载精品_精品资料_【解读】小写字母在内存中以ASCII 的形式存入,且从a 到 z 一次增加,所以直接用

13、cz判定从 a 到 z 的字母, c.= 判定用换行符终止循环6、4、下面程序的功能是依据近似公式: 2/6 1/12+1/22+1/32+ +1/n2, 求 值.#includedouble pilong ndouble s=0.0. long i .fori=1 . i=n . i+ s=s+ .return .【解读】答案:1.0/floati*i sqrt6*s7、下面程序通过指向整型的指针将数组a34的内容按行列的格式输出,请给printf 填入适当的参数,使之通过指针p 将数组元素按要求输出.#includeint a34=1,2,3,4,5,6,7,8,9,10,11,12,*p

14、=a . mainint i,j .fori=0 . i3 . i+ forj=0 . j4 . j+ printfM , .【答案】 *p+4*i+j【注释】 p 是一个一级指针,赋值后储存二维数组a 的首的址 ,做加法运算加1 时,实际的址增加一个它所指向的数据类型的长度.在C 语言中,多维数组在运算机中是按行储备的,所以在此题中要通过指针拜访二维数组中的数据,必需将二维下标转换为一维下标.7、编程题1、将一个正整数分解质因数.例如:输入90,打印出 90=2*3*3*5 .程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1) 假如这个质数恰等于n,就说明分

15、解质因数的过程已经终止,打印出即可.(2) 假如 nk ,但 n 能被 k 整除,就应打印出k 的值,并用 n 除以 k 的商 ,作为新的正整数你可编辑资料 - - - 欢迎下载精品_精品资料_n,重复执行第一步.(3) 假如 n 不能被 k 整除,就用 k+1 作为 k 的值,重复执行第一步#include stdio.h#include conio.h mainint n,i .printfnplease input a number:n.scanf%d,&n .printf%d=n,n .fori=2 . i=a&c=A&c=0&c=9digit+ .else others+.printfall in all:char=%d space=%d digit=%d others=%dn,letters, space,digit,others.getch.可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁