2023年自考类计算机类(工学类)高级语言程序设计(一)历年高频考题带答案难题附详解_第1页
2023年自考类计算机类(工学类)高级语言程序设计(一)历年高频考题带答案难题附详解_第2页
2023年自考类计算机类(工学类)高级语言程序设计(一)历年高频考题带答案难题附详解_第3页
2023年自考类计算机类(工学类)高级语言程序设计(一)历年高频考题带答案难题附详解_第4页
2023年自考类计算机类(工学类)高级语言程序设计(一)历年高频考题带答案难题附详解_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023年自考类计算机类(工学类)高级语言程序设计(一)历年高频考题带答案难题附详解(图片大小可自由调整)第1卷一.历年考点试题黑钻版(共50题)1.访问结构体数组元素a[k]的成员b,写作______。2.写出"n是小于整数m的偶数"的C语言表达式:______。3.main()

{intn,k=1;

for(n=1;n<15;n++)

{k=1;

while(k<=n)

{if(n==k*k)

printf("%d,",n);

k++;}

}

}4.若文件型指针fp已经指向某文件的末尾,则函数feof(fp)的返回值是

A.0B.-1C.NULLD.非零值5.以下程序运行时输入:12<回车>,执行后输出结果

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

printf("%d\n",n2);

}6.以下合法的数组说明是______A.chara[6]="string"B.inta[]={0,1,2,3,4,5};C.chara="string";D.inta[5]={0,1,2,3,4,5};7.有以下程序

main()

{inti,s=0;

for(i=1;i<10;i+=2)s+=i+1;

printf("%d\n",s);

}

程序执行后的输出结果是A.自然数1~9的累加和B.自然数1~10的累加和C.自然数1~9中的奇数之和D.自然数1~10中的偶数之和8.关于宏定义命令,叙述正确的是______A.在程序编译前进行宏替换B.在程序编译时进行宏替换C.在程序编译后进行宏替换D.在程序运行时进行宏替换9.下列叙述中,正确的是______A.C程序书写格式严谨,要求一行内只能写一个语句B.C程序的注释只能出现在右侧C.主函数可调用任何其他函数D.主函数必须放在所有函数的前面10.若有以下定义:

intapple[10];

则apple数组元素下标的上限为______,下限为______。11.#include<stdio.h>

intt(intx,inty,intp,intq)

{p=x*x+y*y;

q=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

printf("%d%d\n",c,d);

}12.一个三位整数(100~999),若各位数的立方和等于该数自身,则称其为"水仙花数"(如:153=13+53+33),找出所有的这种数。

#include<stdio.h>

main()

{intn,a,b,c;

for(c=1;c<=9;c++)

for(b=0;b<=9;b++)

for(a=0;______;a++)/*第一空*/

{

n=______;/*第二空*/

if(a*a*a+b*b*b+c*c*c==______)/*第三空*/

printf("%d\n",n);

}

}13.指针变量的使用主要有两种,一是______;二是引用所指向的变量。14.值传递是把实参的______传给被调用函数的形参。15.voidmain()

{

inti,a[5],*p;

for(i=4;i>=0;i--):*(a+i)=i;

for(p=a;p<a+5;p++)printf("%d\t",*p);

printf("\n");

}16.正确的变量定义是

A.unsignedlongd=1000;B.floatm1=m2=10.0;C.charc1='A',c2=A;D.doublex=0.618,x=3.14;17.编写一个程序,其功能是输出10~1000之间的所有素数之和。18.设定义以下函数:fun(int*p){return*p;},该函数返回的是______。19.有关变量的叙述,正确的是

A.形式参数是全局变量B.a和A在C语言中是同一个变量C.函数体内定义的变量为全局变量D.在所有函数之外定义的变量为全局变量20.为了判定两个字符串是否相等应当使用

A.if(s1==s2)B.if(s1=s2)C.if(strcmp(s1,s2)==0)D.if(strcmp(s1,s2)=0)21.#include<stdio.h>

#include<string.h>

voidmain()

{

char*pa,a[20]="Beijing2008";

for(pa=a+7;*pa!='\0';pa++)putchar(*pa);

putchar('\n'):

}22.变量定义并初始化正确的是

A.inta=1,*p=a;B.inta=2,p=*a;C.inta=3,p=&a;D.inta=4,*p=&a;23.#include<stdio.h>

voidmain()

{

inti,j,s,a[][3]={{1,2,3},{4,5},{6}};

for(s=0,i=0;i<3;i++)

switch(i)

{

case0:

case1:

case2:for(j=0;j<3;j++)s+=a[i][j];break;

}

printf("s=%d\n",s);

}24.设计结构型,包含职工编号、姓名、基本工资和业绩提成。编程序,输入30名职工信息存入结构型数组,然后统计基本工资和业绩提成的总额并输出。25.C语言中,&作为双目运算符表示的运算是______。26.请在该程序段右侧写出其输出结果。

intaa[3][3]={{2},{4},{6}};

main()

{intj,*p=&aa[0][0];

for(j=0;j<2;j++)

{if(j==0)

aa[j][j+1]=*p+1;

else++P;

print(("%d",*p);}

}27.C语言规定常量有整型常量、______、______、字符串常量。28.设intn;,“n为偶数”的C语言逻辑表达式是______。29.在执行循环结构或switch结构时,能够立即退出该结构的语句是______。30.有以下程序(

)

main()

{char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};

printf("%d\n",strlen(p[4]));

}

执行后输出结果是A.2B.3C.4D.531.a盘根目录下的一级子目录tc中的text.exe文件的磁盘文件名是______。32.计算a、b、C中最小值的条件表达式为______。33.设charstr[20];,从键盘输入中间含有空格的字符串的正确语句是______A.gets(str);B.gets(str[20]);C.scanf("%s",str);D.scanf("%c",str);34.设inta[10],*P=a;则对a[3]的引用可以是p[2]和*P______。35.设有定义语句intx[]={1,2,3,4,5},*P=x;,则不正确引用数组x元素的表达式______A.*(--p)B.*(p--)C.*(p++)D.*(++)p36.设有下列数据定义语句,则"printf("%d\n",d[0].y/d[0].x*d[1].x);"的输出是

struct{intx;inty;}d[2]={{1,3},{2,7)};A.0B.1C.3D.637.设

inta[2][3]={1,2,3,4,5,6};

则数组元素a[1][0]的值是______。38.设计一个程序,使用多层嵌套的if-else语句,其功能为:输入一个字符,如果是数字,输出A;如果是大写字母,输出B;如果是小写字母,输出C;是其他符号,输出D。39.设有数组定义:chararray[]="china";,则数组array所占用的空间为

A.4个字节B.5个字节C.6个字节D.7个字节40.执行语句"a=5+(c=6);"后,变量a、c的值依次为______。41.成员变量可以像一般的______一样进行各种运算,只是在运算时要加上“.”运算符。42.#include<stdio.h>

#definePRprinff("x=%d,y=%d\n",x,y)

intx=2,y=8;

/*全局变量*/

voidfun()

{

x++;PR;

}

voidmain()

{

intx=8;

fun();

PR;

}43.编写一个程序,其功能是:输出两个字符串对应位置相等的字符,并输出其位置号(自然编号)。44."->"称为______运算符。45.下列函数返回值的数据类型是______

fun(intx)

{inty;y=4*x-5;returny;}A.intB.voidC.floatD.不确定46.C语言的库函数中,可以输出double型变量值的是______A.getcharB.scanfC.putcharD.printf47.如果函数甲调用函数乙,函数乙又调用函数丙,这叫______;函数甲自己调用自己,这叫______。48.使用语句scanf("a=%f,b=%f",&a,&b);输入变量a、b的值(口代表空格),正确的是

A.125,2.4B.1.25口2.4C.a=1.25,b=2.4D.a=1.25口b=2.449.编程要求输出两个字符串对应位置相等的字符,并输出其位置号(自然编号)。50.有以下程序:

#include<stdio.h>

#definePT4.5;

#defines(x)PT*x*x;

main()

{inta=1,b=2;printf("%4.1f\n",s(a+b));}

输出结果为______A.8.5B.40.5C.程序有错D.18.0第1卷参考答案一.历年考点试题黑钻版1.参考答案:a[k].b2.参考答案:!(n%2)&&n<m3.参考答案:1,4,9,4.参考答案:D[解析]本题主要考查的知识点为feof函数。[要点透析]文件尾测试函数intfeof(FILE*fp),测试fp所指向的文件是否到达文件尾。是文件尾返回非0;否则返回0。5.参考答案:12[解析]

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();/*变量ch1和ch2分别获得初值1和2*/

nI=ch1-'0';n2=n1*10+(ch2-'0');/*变量ch1和ch2都以其ASCⅡ值参与运算*/

printf("%d\n",n2);

}6.参考答案:B[考点]数组初始化

[解析]字符串“string”长度为6,但是因为系统在字符串后面加上'\0'作为结束符,所以占7个字节,A项中字符串超出其容量,应为a[7];同理,D项中超出了数组容量;而C项中,字符串不能赋值给字符变量,应赋单个字符。7.参考答案:D[解析]

main()

{inti,s=0;

for(i=1;i<10;i+=2)/*i的初始值为1,步进值为2,循环条件是i<10*/

s+=i+1;/*从上述循环条件来看,应为求自然数1~9中的奇数之和;但是有意思的是"s+=i+1"改变了现状,"+"的运算优先级别高于"+=",故"1"在每次s的求和运算中都有一份功劳。现实是,每次s的求和运算都多加了一个1,结果就成了自然数1~10中的偶数之和*/

printf("%d\n",s);

}8.参考答案:A[考点]本题主要考查的知识点为宏。

宏定义命令的一般格式是:

#define

宏名

一串符号

在程序清单中可以出现已经定义过的“宏名”,称为“宏调用”;在对源程序清单进行编译之前,将把所有的“宏名”替换成对应的“一串符号”,称为“宏替换”。9.参考答案:C[考点]C程序的特点

[解析]C程序书写灵活,在一行上可书写多个语句;注释可放在任何位置;主函数可放在任何位置。10.参考答案:9,0[考点]一维数组的下标

[解析]一维数组的下标范围为0~长度-1。11.参考答案:56(注意:传递实参的值,但不改变实参的值)12.参考答案:a<=9/*第一空。明确个位数的范围(从0~9)*/

100*c+10*b+a/*第二空。计算并求出这个三位数*/

n/*第三空。将各位数的立方和与这个三位数进行比较以确定其是否为"水仙花数"*/13.参考答案:赋值14.参考答案:值15.参考答案:0

1

2

3

416.参考答案:A17.参考答案:

main()

{longs=OL;

intk,m,flag;

for(k=10;k<1001;k++)

{flag=1;

for(m=2;m<=k/2;m++)

if(k%m==0){flag=0;break;}

if(flag)s+=k;

}

printf("s=%1d\n",s);

}18.参考答案:形参p所指存储单元中的值[考点]取值运算符

[解析]*p代表的是形参所指单元中的值。19.参考答案:D20.参考答案:C21.参考答案:200822.参考答案:D[解析]A项中,不能将一个变量赋值给一个指针变量;B项中,*a的表达方式错误;C项中,不能将变量的地址赋给变量。23.参考答案:624.参考答案:main()

{

struct

{longnum;

charname[10];

floatwage[2];

}s[30],*p=s;

intk;

floatx,total[2];

for(p=s;p<s+30;p++)

{scanf("%1d,%s",&p->num,p->name);

for(k=0;k<2;k++)

{scanf("%f",&x);

p->wage[k]=x;}

}

total[0]=total[1]=0.0;

for(k=0;k<2;k++)

for(p=s;p<s+30;p++)

total[k]+=p->wage[k];

for(k=0;k<2;k++)

printf("%f\n",total[k]);

}25.参考答案:(按)位与26.参考答案:23[解析]

intaa[3][3]={{2},{4),{6}};main(){intj,*p=&aa[0][0];for(j=0;j<2;j++)/*限定循环只有两次,J=0一次、j=1一次*/{if(j==0)/*第一次执行循环时,j==0成立*/aa[j][j+1]=*p+1;/*将"3"赋给"a[0][1]"*/else++P;/*第二次执行循环时,j==0不成立,执行这个语句*/printf("%d",*p);}/*两次循环都执行,第一次打印a[0][0]第二次打印a[0][1]。*/}27.参考答案:实型常量、字符常量[考点]常量类型

[解析]常量类型有整型常量、实型常量、字符常量和字符串常量。28.参考答案:a%2==0[考点]逻辑表达式的应用

[解析]n为偶数等价于n%2的运算结果,等于0。29.参考答案:break30.参考答案:A[解析]输出的数据是第五个字符串的字符个数。p[4]传递给函数strlen()的址第五个字符串的首地址。31.参考答案:a:\tc\text.exe[考点]磁盘文件名

[解析]磁盘文件名的一般组成是盘符:路径\文件主名.扩展名。路径是由目录序列组成的,目录间的分隔符号为“\”。32.参考答案:a<d?a:(b<c?(d=b):(d=c))33.参考答案:A[考点]字符串的输入函数

[解析]gets()函数和使用“%s”格式的scanf()函数都可以从键盘接受字符串,但输入时有区别:对于scanf()函数,回车换行符或空格符都看成输入字符串的结束;对于gets()函数,只有回车换行符才看威输入字符串的结束,空格符看成字符串的一部分。34.参考答案:+235.参考答案:A[考点]数组名指向的地址

[解析]数组名代表数组的首地址,*p=x表示把数组x的首地址赋给了p,因此--p指针移出了数组外,所以选择A项。36.参考答案:D37.参考答案:438.参考答案:main()

{charc;

scanf("%c",&c);

if('0'<=c&&c<='9')

printf("c=%c\n",'A');

elseif('A'<=(c&&c<='Z')

printf("c=%c\n",'B');

elseif('a'<=c&&c<='z')

printf("c=%c\n",'C');

else

printf("c=%c\n",'D');

}39.参考答案:C40.参考答案:11

641.参考答案:变量[考点]结构型变量成员

[解析]结构型变量成员的使用和一般的普通变量或数组的使用方法完全相同。42.参考答案:

x=3,y=8

x=8,y=843.参考答案:

#include<stdio.h>

main()

{

char*c,*s;

int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论