欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【学历类职业资格】高级语言程序设计-8及答案解析.doc

    • 资源ID:1380179       资源大小:60KB        全文页数:9页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【学历类职业资格】高级语言程序设计-8及答案解析.doc

    1、高级语言程序设计-8 及答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:15,分数:30.00)1.若有以下说明,则在 seanf函数调用语句中对结构体变量成员引用方式不正确的是( ) struct pub char name20; int age; int sex; pub5,*P;(分数:2.00)A.scanf(“%s“,pup0nam;B.scanf(“%d“,pup0ag;C.scanf(“%d“,p-se;D.scanf(“%d“,*ag;2.设有以下定义 int a43=1,2,3,4,5,6,7,8,9),10,11,12; int *ptr3

    2、=a0,*p=a0; 则以下能正确表达数组元素 a12的表达式是( )(分数:2.00)A.*(*ptr+1)2)B.*(*(p+5)C.*(*ptr+1)+4)D.*(*(p+1)+2)3.不能把字符串“Hello!“符给数组 b的语句是( )(分数:2.00)A.char b10=H,e,l,l,o,!;B.char b10;b=“Hello!“;C.char b10;strcpy(b,“Hello!“);D.char b10=“Hello!“;4.若 x、y 是 int型变量,则执行以下语句后的 x值是( ) #includestdioh main() int x,y; for(y=1,

    3、x=1;y50;y+) if(x=10)break; if(x%2=1) x+=5; x-=3; (分数:2.00)A.3B.6C.7D.105.已知有以下定义(假定现有计算机字长为 16) int a=0x48,b=0xf0; ab 的值为( )(分数:2.00)A.184B.183C.290D.2876.若有以下定义: char s20=“programming“,*ps=s; 则不能代表字符 o的表达式是( )(分数:2.00)A.*(ps+2)B.s2C.ps2D.*ps+=27.若有说明语句:int I,;则以下关于 x、*x、x0、x00的描述正确的是( )(分数:2.00)A.x

    4、、*x、x0、x00均表示元素 x00的地址B.只有 x、*x 表示元素 x00的地址C.只有 x0、xL0表示元素 x00的地址D.只有x00表示元素的地址8.以下函数的功能是( ) ABC(ps) char *ps; char *P; p=ps; while(*p+); return(p-ps); (分数:2.00)A.比较两个字符串的大小B.求字符串的长度C.将字符串 ps复制到 P中D.以上三种说法都不对9.执行以下程序段后 s的值为( ) int a=5,64,4,8,9,5,8; int s=0; int k; for(k=0;k8;k+=2) s+=*(a+k):(分数:2.00

    5、)A.17B.22C.27D.3210.C语言的基本数据类型包括( ) A字符型和数值型 B字符型和逻辑型 c整型和实型 D指针型和数据型(分数:2.00)A.B.C.D.11.下列选项中合法的数组定义是( )(分数:2.00)A.int a=“string“;B.int a5=0,1,2,3,4,5;C.char a=“sting“;D.char a=0,1,2,3,412.执行下列语句后 b的值为( ) int a,b,C,l=4,m=6,n=8; int *p1=1,*p2=m,*p3; a=p1=1;b=3*(-*p1)/(*p2)+7; c=*(p3=n)=*p1*(*p2);(分数

    6、:2.00)A.4B.5C.7D.813.若有下列类型说明语句: char w;int x;float y;double z; 则表达式 w*x+z-y的结果的数据类型是( )(分数:2.00)A.charB.intC.floatD.double14.下列关于 C语言的描述正确的是( )(分数:2.00)A.C语言是面向硬件的高级语言B.C语言是面一种面向对象的程序设计语言C.C语言是一种结构化程序设计语言D.C语言的前身是汇编语言15.下列程序正确的运行结果为( ) #includestdioh main() int a=2,6,8,10,14,18); int *ptr-=a0,a1,a2

    7、,a3,a4); int i; for(i0;i5;i+) ai=ai/2+ai printf(“%d/n“,*(*(ptr+2); printf(“%d/n“,*(*ptr); (分数:2.00)A.12 21B.21 12C.12 3D.3 12二、B填空题/B(总题数:10,分数:20.00)16.与标准输出设备所对应的文件型指针名为 1。(分数:2.00)填空项 1:_17.将字符串写入文件时,不写入文件的字符串结束标志是 1。(分数:2.00)填空项 1:_18.将字符转换成 ASC代码值的函数是 1。(分数:2.00)填空项 1:_19.文件包含命令是以 1 为开头的编译预处理命令

    8、。(分数:2.00)填空项 1:_20. 1是 C语言中唯一的一个三目运算符,它是由两个符号组成。(分数:2.00)填空项 1:_21.数组 int arry59;的第二维下标的最大值是 1。(分数:2.00)填空项 1:_22.在进行程序清单的编译时, 1 是先于编译进行的。(分数:2.00)填空项 1:_23.已知 char str=“ABCD“;,则语句 printf(“%d“,strlen(str);的输出是 1。(分数:2.00)填空项 1:_24.设 int a;float b;char c;long d;double e;unsigned u;,则表达式 a+c/b-d*e+u值

    9、的类型是 1。(分数:2.00)填空项 1:_25.设 int x=5; x+=x-=x*x; 则 x的值是_。(分数:2.00)填空项 1:_三、B程序分析题/B(总题数:4,分数:16.00)26.#includestdioh void main() int i; for(i=1;i5;i+) printf(“%d/t%c/n“,i,(A+i); (分数:4.00)_27.#includestdioh void main() int i,j,a44; for(i=0;i4;i+) for(j=0;j4;j+) aij=1+i;-j; for(i=0;i4;i+) for(j=0;j4;j+

    10、) if(aij0)printf(“%3 d“,aij); printf(“/n“); (分数:4.00)_28.#includestdioh int f(int n) static int s=1; while(n)s*=n-; return s; main() int i,j; i=f(3);j=f(5); printf(“The output is:/n“); printf(“i=%d j=%d/n“,i,j); (分数:4.00)_29.#includestdioh int trans(int m,int n) int i; if(mn) i=m%n;trans(m,n); else

    11、i=m: if(i10)printf(“%d/n“,i): else printf(“%c“,A+i-10): main() int i; printf(“The output is:/n“); printf(“n%d/n“,-23); trans(21,3); printf(“n%d/n“,123); trans(123,16); (分数:4.00)_四、B程序填充题/B(总题数:3,分数:18.00)30.将一个十进制整数转变成一个二进制整数。 #includestdioh main() int i=0j,n,num20;scanf(“%d“,_);/*第一空*/ while(n!=0)

    12、numi+=_;/*第二空*/ n=_;)/*第三空*/ for(j=i-1;j=0;j-) printf(“Ha“,numj); printf(“/n“); (分数:6.00)填空项 1:_31.以下程序用来统计从终端输入的字符中大写字母的个数。以“$“作为输入结束标记。 #includestdioh #includectypch main() int num126,i;char c; for(i=0;i26;i+) numi=0; while(_)!=$)/*第一空*/ if(isupper(c)numc-65+=1; for(i=0;i26;i+) if(_)/*第二空*/ printf

    13、(“%c:%d/n“,_,numi);/*第三空*/ (分数:6.00)填空项 1:_32.输入 5个字符,从中找出最大的并输出。要求用字符数组存放此字符,并用指针数组元素分别指向这5个字符。 #includestdioh main() char a5,*p5,*max; int I; for(I=0;I5;I+) _;/*第一空*/ for(I=0;I5;I+) scanf(“%C“,pI); max=p0; for(I=0;_;I+)/*第二空*/ if(*max*pI) _;/*第三空*/ printf(“%c“,*max); (分数:6.00)填空项 1:_五、B程序设计题/B(总题数

    14、:2,分数:16.00)33.输出 100以内所有个位数字为 7且能被 3整除的数。(分数:8.00)_34.一个二维数组 int a44,请将其填满并输出其四个边的元素。(分数:8.00)_高级语言程序设计-8 答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:15,分数:30.00)1.若有以下说明,则在 seanf函数调用语句中对结构体变量成员引用方式不正确的是( ) struct pub char name20; int age; int sex; pub5,*P;(分数:2.00)A.scanf(“%s“,pup0nam;B.scanf(“%d“,pu

    15、p0ag;C.scanf(“%d“,p-se;D.scanf(“%d“,*ag; 解析:解析 “的优先级远高于“和“*“。2.设有以下定义 int a43=1,2,3,4,5,6,7,8,9),10,11,12; int *ptr3=a0,*p=a0; 则以下能正确表达数组元素 a12的表达式是( )(分数:2.00)A.*(*ptr+1)2)B.*(*(p+5)C.*(*ptr+1)+4) D.*(*(p+1)+2)解析:解析 “int *ptr3=a0“定义了指针数组 ptr并给这个数组的第一个元素赋值“a0“,“*(*ptr+1)+4)“的含义是:取指针数组 ptr的第一个元素值再加 5

    16、所得的指针量指向的内存单元的值。3.不能把字符串“Hello!“符给数组 b的语句是( )(分数:2.00)A.char b10=H,e,l,l,o,!;B.char b10;b=“Hello!“; C.char b10;strcpy(b,“Hello!“);D.char b10=“Hello!“;解析:解析 “char b10;b=“Hello!“;语句中,b 是数组的首地址而不是变量,故字符串“Hello!“的首地址不能赋给 b,也就不能完成把字符串“Hello!“赋给数组 b的任务。4.若 x、y 是 int型变量,则执行以下语句后的 x值是( ) #includestdioh main

    17、() int x,y; for(y=1,x=1;y50;y+) if(x=10)break; if(x%2=1) x+=5; x-=3; (分数:2.00)A.3 B.6C.7D.10解析:解析 #includestdioh main() int x,y; for(y=1,x=1;y50;y+)/*以 y为线索进行循环,步进值为 1*/ if(x=10)break;/*如果 x大于 10则中断循环*/ if(x%2=1)/*当 x是奇数时,执行“x+=5;“*/ x+=5;) X-=3;/*循环执行完毕,x 的值减 3*/ 5.已知有以下定义(假定现有计算机字长为 16) int a=0x48

    18、,b=0xf0; ab 的值为( )(分数:2.00)A.184 B.183C.290D.287解析:解析 因计算机字长为 16,故 a的二进制表示是 0000000001001000,b 的二进制表示是0000000011110000,进行按位加(ab)所得的结果是:0000000010111000(十进制值为 184)。6.若有以下定义: char s20=“programming“,*ps=s; 则不能代表字符 o的表达式是( )(分数:2.00)A.*(ps+2)B.s2C.ps2D.*ps+=2 解析:解析“*“的运算优先级高于“+-“,故*ps+=2 相当于*ps=p+2。7.若有

    19、说明语句:int I,;则以下关于 x、*x、x0、x00的描述正确的是( )(分数:2.00)A.x、*x、x0、x00均表示元素 x00的地址B.只有 x、*x 表示元素 x00的地址C.只有 x0、xL0表示元素 x00的地址 D.只有x00表示元素的地址解析:解析 x0表示数组 x34第二行的首地址,也是数组元素00的地址8.以下函数的功能是( ) ABC(ps) char *ps; char *P; p=ps; while(*p+); return(p-ps); (分数:2.00)A.比较两个字符串的大小B.求字符串的长度 C.将字符串 ps复制到 P中D.以上三种说法都不对解析:解

    20、析 ABC(ps)char *ps; char *p; p=ps; while(*p+);/*寻找字符串的结束符“/0“,p 的自加在循环体被执行后才被执行*/ return(p-ps);/*求出字符串的长度*/ 9.执行以下程序段后 s的值为( ) int a=5,64,4,8,9,5,8; int s=0; int k; for(k=0;k8;k+=2) s+=*(a+k):(分数:2.00)A.17B.22 C.27D.32解析:解析 int a=5,6,4,4,8,9,5,8; int s=0: int k; for(k=0;k8;k+=2)/*步进值为 2,k=8 时循环终止*/ s

    21、+=*(a+k);/*s 的值是 a0、a2、a4、a6的和*/10.C语言的基本数据类型包括( ) A字符型和数值型 B字符型和逻辑型 c整型和实型 D指针型和数据型(分数:2.00)A. B.C.D.解析:11.下列选项中合法的数组定义是( )(分数:2.00)A.int a=“string“; B.int a5=0,1,2,3,4,5;C.char a=“sting“;D.char a=0,1,2,3,4解析:12.执行下列语句后 b的值为( ) int a,b,C,l=4,m=6,n=8; int *p1=1,*p2=m,*p3; a=p1=1;b=3*(-*p1)/(*p2)+7;

    22、c=*(p3=n)=*p1*(*p2);(分数:2.00)A.4B.5 C.7D.8解析:解析决定 b的值的是语句“b=3*(-*p1)/(*p2)+7;“根据定义将其转换成变量算术运算式是“b=3*(-1)/m+7=3*(-4)/6+7=5“。13.若有下列类型说明语句: char w;int x;float y;double z; 则表达式 w*x+z-y的结果的数据类型是( )(分数:2.00)A.charB.intC.floatD.double 解析:14.下列关于 C语言的描述正确的是( )(分数:2.00)A.C语言是面向硬件的高级语言B.C语言是面一种面向对象的程序设计语言C.C

    23、语言是一种结构化程序设计语言 D.C语言的前身是汇编语言解析:15.下列程序正确的运行结果为( ) #includestdioh main() int a=2,6,8,10,14,18); int *ptr-=a0,a1,a2,a3,a4); int i; for(i0;i5;i+) ai=ai/2+ai printf(“%d/n“,*(*(ptr+2); printf(“%d/n“,*(*ptr); (分数:2.00)A.12 21 B.21 12C.12 3D.3 12解析:解析 #includestdioh main() int a=2,6,810,14,18); int *ptr=a4

    24、,a3,a2,a1,a0;/*定义一个指向整型数据的指针的数组,并以数组 a的前 5个元素的地址为初值*/ for(i=0;i5;i+) ai=ai/2+ai;/*数组 a的元素分别加上各自现有值的 1/2并保存在该元素中*/ printf(“%d/n“,*(*(ptr+2);/*输出的是指针数组 ptr的第三个元素所指向的数组 a的元素值*/ printf(“%d/n“,*(*ptr);/*输出的是指针数组 ptr的第一个元素所指向的数组 a的元素值*/ 二、B填空题/B(总题数:10,分数:20.00)16.与标准输出设备所对应的文件型指针名为 1。(分数:2.00)填空项 1:_ (正确

    25、答案:stdout)解析:17.将字符串写入文件时,不写入文件的字符串结束标志是 1。(分数:2.00)填空项 1:_ (正确答案:/0)解析:18.将字符转换成 ASC代码值的函数是 1。(分数:2.00)填空项 1:_ (正确答案:toascii-|_|-)解析:19.文件包含命令是以 1 为开头的编译预处理命令。(分数:2.00)填空项 1:_ (正确答案:#include)解析:20. 1是 C语言中唯一的一个三目运算符,它是由两个符号组成。(分数:2.00)填空项 1:_ (正确答案:条件运算符)解析:21.数组 int arry59;的第二维下标的最大值是 1。(分数:2.00)填

    26、空项 1:_ (正确答案:8)解析:22.在进行程序清单的编译时, 1 是先于编译进行的。(分数:2.00)填空项 1:_ (正确答案:宏替换)解析:23.已知 char str=“ABCD“;,则语句 printf(“%d“,strlen(str);的输出是 1。(分数:2.00)填空项 1:_ (正确答案:4)解析:24.设 int a;float b;char c;long d;double e;unsigned u;,则表达式 a+c/b-d*e+u值的类型是 1。(分数:2.00)填空项 1:_ (正确答案:double)解析:25.设 int x=5; x+=x-=x*x; 则 x

    27、的值是_。(分数:2.00)填空项 1:_ (正确答案:-40)解析:三、B程序分析题/B(总题数:4,分数:16.00)26.#includestdioh void main() int i; for(i=1;i5;i+) printf(“%d/t%c/n“,i,(A+i); (分数:4.00)_正确答案:()解析:1 B 2 C 3 D 4 E 解析 #includestdioh void main() int i; for(i=1;i5;i+)/*限定循环次数为 4次*/ printf(“%d/t%c/n“,i,(A+i);,/*输出的值并输出 ASC值为(A+i)“字符*/ 27.#i

    28、ncludestdioh void main() int i,j,a44; for(i=0;i4;i+) for(j=0;j4;j+) aij=1+i;-j; for(i=0;i4;i+) for(j=0;j4;j+) if(aij0)printf(“%3 d“,aij); printf(“/n“); (分数:4.00)_正确答案:()解析:1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 解析 #includestdioh void main() int i,j,a44; for(i=0;i4;i+)/*限定循环次数为 4次*/ for(j=0;j4;j+)aij=1+i;-j

    29、;/*限定循环次数为 4次*/ for(i=0;i4:i+) for(j=0;j4;j+) if(aij0)printf(“%3d“,aij);/*设置输出格式为 3个字符的宽度,不足的宽度以空格补齐*/ printf(“n“); 28.#includestdioh int f(int n) static int s=1; while(n)s*=n-; return s; main() int i,j; i=f(3);j=f(5); printf(“The output is:/n“); printf(“i=%d j=%d/n“,i,j); (分数:4.00)_正确答案:()解析:The ou

    30、tput is: i=6 j=720 解析 #includestdioh int f(int n) static int s=1;/*s 被定义为静态变量,函数 f()退出时其值被保留,且再次进入该函数时不再被初始化,该变量所使用的值为最近一次凋函数 f()时所得到的值。*/ while(n)s*=n-; return s; main() int i,j; i=f(3);/*第次凋用 f(),s 被初始化为 1,运算过程中 s的值被改变为 6,所以 i=6*/ j=f(5);/*第二次调用 f(),s 不再被初始化而是以值 6参与本次运算,故 j的值为 654321=720*/ printf(

    31、“The output is:/n“); printf(“i=%d j=%d/n“,i,j); 29.#includestdioh int trans(int m,int n) int i; if(mn) i=m%n;trans(m,n); else i=m: if(i10)printf(“%d/n“,i): else printf(“%c“,A+i-10): main() int i; printf(“The output is:/n“); printf(“n%d/n“,-23); trans(21,3); printf(“n%d/n“,123); trans(123,16); (分数:4.

    32、00)_正确答案:()解析:The output is: n-23 解析 #include stdioh int trans(int m,int n) int i; if(mn) i=m%n;trans(m,n);/*如果 mn,则将 m除以 n的余数赋给 i,并再次调用函数 trans()*/ else i=m; if(i10)printf(“%d/n“,i);/*如果 i10,则打印输出 i的值*/ else printf(“%c“,A+i-10); main() int i; printf(“The output is:/n“); printf(“n%d/n“,-23);trans(21

    33、,3); printf(“n%dkn“,123); trans(123,16); 四、B程序填充题/B(总题数:3,分数:18.00)30.将一个十进制整数转变成一个二进制整数。 #includestdioh main() int i=0j,n,num20;scanf(“%d“,_);/*第一空*/ while(n!=0) numi+=_;/*第二空*/ n=_;)/*第三空*/ for(j=i-1;j=0;j-) printf(“Ha“,numj); printf(“/n“); (分数:6.00)填空项 1:_ (正确答案:n/*第一空。从键盘上输入十制数 n*/)解析:n%2/*第二空。取

    34、余数填补低位*/ n/2/*第三空*。为下一次循环进行更高的一位运算做准备/31.以下程序用来统计从终端输入的字符中大写字母的个数。以“$“作为输入结束标记。 #includestdioh #includectypch main() int num126,i;char c; for(i=0;i26;i+) numi=0; while(_)!=$)/*第一空*/ if(isupper(c)numc-65+=1; for(i=0;i26;i+) if(_)/*第二空*/ printf(“%c:%d/n“,_,numi);/*第三空*/ (分数:6.00)填空项 1:_ (正确答案:c=getcha

    35、r()/*第一空。得到从键盘输入的值,并判断是不是结束标志“$“*/)解析:numi/*第二空。判断用以记录个数的数组元素是否为 0,如为 0则不输出*/ i+65/*第三空。从语句“numc-65+=1;“可知数组对字符的记录是通过下标和字符的 ASC值之间的关系进行的。故此处应填上与之相应的换算关系*/32.输入 5个字符,从中找出最大的并输出。要求用字符数组存放此字符,并用指针数组元素分别指向这5个字符。 #includestdioh main() char a5,*p5,*max; int I; for(I=0;I5;I+) _;/*第一空*/ for(I=0;I5;I+) scanf

    36、(“%C“,pI); max=p0; for(I=0;_;I+)/*第二空*/ if(*max*pI) _;/*第三空*/ printf(“%c“,*max); (分数:6.00)填空项 1:_ (正确答案:pI=aI/*第一空。给指针数组 P的元素分别赋以相应的数组 a的元素的地址*/)解析:I25/*第二空。确定循环的次数,以防数组越界*/ max=pI/*第三空。将最值赋予字符变量max*/五、B程序设计题/B(总题数:2,分数:16.00)33.输出 100以内所有个位数字为 7且能被 3整除的数。(分数:8.00)_正确答案:()解析:#includestdioh main() in

    37、t i,a; for(i-0;i10;i+) a=i*10+7;/*求个位为 7的数*/ if(a%3=0)printf(“%d/n“,a);/*判断其是否能被 3整除*/ 34.一个二维数组 int a44,请将其填满并输出其四个边的元素。(分数:8.00)_正确答案:()解析:#includestdioh main() int a44; int i,j; for(i=0;i4;i+) for(j=0;j4;j+) scanf(“%d,aij); for(i=0;i4;i+) for(j=0;j4;j+) if(i=0)|(i=3)printf(“%d“,aij);/*如果是第一行或第四行则输出该元素*/ else if(j=0)|(j=3)printf(“%d“,aij);/*如果是第一列或第四列则输出该元素*/


    注意事项

    本文(【学历类职业资格】高级语言程序设计-8及答案解析.doc)为本站会员(feelhesitate105)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开