完整版专接本计算机C语言程序设计模拟试题及答案.docx
- 文档编号:10915894
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:75
- 大小:193.62KB
完整版专接本计算机C语言程序设计模拟试题及答案.docx
《完整版专接本计算机C语言程序设计模拟试题及答案.docx》由会员分享,可在线阅读,更多相关《完整版专接本计算机C语言程序设计模拟试题及答案.docx(75页珍藏版)》请在冰点文库上搜索。
完整版专接本计算机C语言程序设计模拟试题及答案
专接本计算机C语言程序设计模拟试题及答案
(一)
一、单项选择题(每小题2分,共20分)
1.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是()
A)p=2*(int*)malloc(sizeof(int));B)p=(int*)malloc(2*sizeof(int));
C)p=(int*)malloc(4*2);D)p=(int*)calloc(2,sizeof(int));
2.设有intx=11;则表达式(x++*1/3)的值是()
A)3
B)4
C)
11
D)12
3.下列程序执行后的输岀结果是
(小数点后只写一位)(
)
#include
voidmain()
{doubled;floatf;longl;inti;
i=f=l=d=20/3;
printf("%d%ld%f%f\n",i,l,f,d);
}
A)666.06.0B)666.76.7
C)666.06.7D)666.76.0
4.下列变量定义中合法的是()
A)short_a=1-.le-1
B)doubleb=1+5e2.5
C)longd1=0xfdaL
D)float2_and=1-e-3;
5.设有定义:
intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是
A)
k++
B)k+=1
C)++k
D)k+1
6.有以下程序,其中%口表示按无符号整数输出,输出结果是()
#include
voidmain()
{unsignedshortx=0xFFFF;/*x的初值为十六进制数*/
printf("%u\n",x);
}
A)-1B)65535C)32767D)
0xFFFF
7.有以下程序,输岀结果是()
#include
voidmain()
{inti,j;
for(i=1;i<4;i++)
{for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);
printf("\n");
}
}
B)1*1=11*2=21*3=3
2*2=42*3=6
3*3=9
A)1*1=11*2=21*3=3
2*1=22*2=4
3*1=3
C)1*1=1
1*2=22*2=4
1*3=3
2*3=6
3*3=9
8.在C语言中,函数返回值的类型最终取决于()
A)函数定义时在函数首部所说明的函数类型B)return语句中表达式值的类型
C)调用函数时主函数所传递的实参类型D)函数定义时形参的类型
9.设已有定义:
floatx;则对指针变量p进行定义且赋初值的语句中正确的是()
A)float*p=1024B)int*p=(floatx)
C)floatp=&xD)float*P=&x;
10.以下叙述中正确的是()
A)break语句只能用于switch语句体中
B)continue语句的作用是:
使程序的执行流程跳出包含它的所有循环
C)break语句只能用在循环体内和switch语句体内
D)在循环体内使用break语句和continue语句的作用相同
二、完成下列的程序填空(每空3分,共18分)
1•写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输岀字符串。
#include
#include
voidmain()
{voidinverse(charstr[]);
charstr[1OO];
scanf("%s",str);
inverse(str);
printf("inversestring:
%s\n",str);
}
voidinverse(charstr[])
{chart;
inti,j;
for(i=0,j=strlen(str);i<(strlen(str)/2);i++,j--)
{;
}
}
2•有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组。
#include
voidmain()
{inta[11]={1,4,6,9,13,16,19,28,40,100};
inttemp1,temp2,number,end,i,j;
printf("arraya:
\n");
for(i=0;i<10;i++)
printf("insertdata:
");scanf("%d",&number);end=a[9];
if(number>end)
else
for(i=0;i<10;i++)
{if(a[i]>number)
{;
a[i]=number;
for(j=i+1;j<11;j++)
{temp2=a[j];
a[j]=temp1;
}
break;
}
}
}
三、写岀下列程序的运行结果(每小题9分,共36分)
1.以下程序运行后的输岀结果是()
#include
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;
}
voidmain()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
2.以下程序运行后的输岀结果是()
#include
f(intb[],intm,intn)
{inti,s=0;
for(i=m;i returns; } voidmain() {intx,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); #include intf() {staticinti=0; ints=1; s+=i;i++; returns; } voidmain() {inti,a=0; for(i=0;i<5;i++)a+=f(); printf("%d\n",a); } 4.以下程序的输岀结果是() #include voidmain() {charch[2][5]={"6937","8254"},*p[2]; inti,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0'; } 四、按要求编写下列程序(每小题13分,共26分) o编写程序,用函数的递归调用求x的n次方的值,其中n为正整数。 myfun(x) o输入正整数m和n,如果m+n是质数,输出"Yes",否则,输出"N6'。 要求定义并调用函数 来判断x是否为质数,在下面空岀的位置完成程序,不能定义新的变量,可不用已定义的某些变量。 #include #include voidmain() { intm,n; } intmyfun(intx) { intk; } 参考答案 一、单项选择题(每小题2分,共20分) AAACABBADC 二、完成下列的程序填空(每空3分,共18分) 1. t=str[i]; str[i]=str[j-1]; str[j-1]=t; 2. a[10]=number; temp1=a[i]; temp1=temp2; 三、写岀下列程序的运行结果(每小题9分,共36分) 1、6,2,3,4,5,_ 2、10 3、15 4、6385 四、按要求编写下列程序(每小题13分,共26分) 1•编写程序,用函数的递归调用求x的n次方的值,其中n为正整数 #include floatmypow(floatx,intn) {floatm; if(n==1)m=x; elsem=x*mypow(x,n-1); returnm; } voidmain() {floatx; intn; scanf("%f,%d",&x,&n); printf("%f的%d次方是%f",x,n,mypow(x,n)); } myfun(x) 2.输入正整数m和n,如果m+n是质数,输出"Yes",否则,输出"N6'。 要求定义并调用函数来判断x是否为质数,在下面空岀的位置完成程序,不能定义新的变量,可不用已定义的某些变量。 #include #include voidmain() { intm,n; scanf("%d%d",&m,&n); if(myfun(m+n))printf("Yes") elseprintf("No"); } intf(intx) {intk; for(k=2;k if(x%k==0)return0; return1; } 专接本计算机C语言程序设计模拟试题及答案 (二) 一、单项选择题(每小题2分,共20分) 1.在说明语句: int*f();中,标识符f代表的是() A)一个用于指向整型数据的指针变量B)一个用于指向一维数组的行指针 C)一个用于指向函数的指针变量D)一个返回值为指针型的函数名 2.下列程序的输出结果是() #include voidmain() {doubled=3.2;intx,y; x=1.2;y=(x+3.8)/5.0; printf("%d\n",d*y); } A)3B)3.2C)0D)3.07 3.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量al和 a2赋数值10和20,为变量cl和c2赋字符X和'Y'。 以下所示的输入形式中正确的是(注: □弋表空格字符)() 4. 以下选项中,当x为大于1的奇数时,值为0的表达式() 5.以下叙述中正确的是() A)break语句只能用于switch语句体中 B)continue语句的作用是: 使程序的执行流程跳出包含它的所有循环 C)break语句只能用在循环体内和switch语句体内 D)在循环体内使用break语句和continue语句的作用相同 6.以下合法的字符型常量是() A)'\x13'B)'\018'C)65 D)"\n" 7.在C语言中,函数返回值的类型最终取决于 () A)函数定义时在函数首部所说明的函数类型 B)return语句中表达式值的类型 C)调用函数时主函数所传递的实参类型 D)函数定义时形参的类型 8.设intx=1,y=1;表达式(凶|y--)的值是() A)0B)1C)2D)-1 9.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是() A)p=2*(int*)malloc(sizeof(int));B)p=(int*)malloc(2*sizeof(int)); C)p=(int*)malloc(4*2);D)p=(int*)calloc(2,sizeof(int)); 10.以下函数的功能是() intfun(char*s) {char*t=s; while(*t++); return(t-s); } A)比较两个字符的大小B)计算s所指字符串占用内存字节的个数 C)计算s所指字符串的长度D)将s所指字符串复制到字符串t中 二、完成下列的程序填空(每空3分,共27分) 1输入20个数,用起泡法对这20个数升序排列。 #include voidmain() {inta[20]; inti,j,t; printf("input20numbers: \n”); for(i=0;i<20;i++) scanf("%d",&a[i]); printf("\n”); for(j=0;j<19;j++) for(i=0;;i++) if() {} printf("thesortednumbers: \n”); for(i=0;i<20;i++) printf("%d”,a[i]); printf("\n”); } 2•写一个函数,输入一个十六进制数,输出相应的十进制数。 #include voidmain() {chara[6]; scanf("%s",a); printf("%d\n",htoi(a)); } inthtoi(chars[]) {inti,n; n=0; for(i=0;s[i]! ='\0';i++) {if(s[i]>='0'&&s[i]<=9) n=n*16+; if(s[i]>='a'&&s[i]<='f) n=n*16+; if(s[i]>='A'&&s[i]<='F') n=n*16+; } return(n); } 3•用指针的方法编写的函数,将一个5x3的整型二维数组行列互换。 #include voidmain() {voidmove(int*pointer); inta[3][3],*p,i; printf("inputmatrix: 'n"); for(i=0;i<3;i++) scanf("%d%d%d",&a[i][0],&a[i][1],&a[i][2]); p=&a[0][0]; move(p); printf("Now,matrix: \n"); for(i=0;i<3;i++) printf("%d%d%d\n",a[i][0],a[i][1],a[i][2]); } voidmove(int*pointer) {inti,j,t; for(i=0;i<3;i++) for(j=i;j<3;j++) {; 5 5 } } 三、写出下列程序的运行结果(每小题8分,共24分) 1.以下程序运行后的输出结果是() #include voidmain() {voidf(intn,int*r); intm=7,r; f(m,&r); printf("%d\n",r); } voidf(intn,int*r) {intr1=0; if(n%3==0)r1=n/3; elseif(n%5==0)r1=n/5; elsef(--n,&r1); *r=r1; } 2.以下程序的输出结果是() #include f(inta) {intb=0; staticintc=3; b++;c++; return(a+b+c); } voidmain() {inta=2,i; for(i=0;i<3;i++)printf(”%d\n”,f(a)); } 3.以下程序的输出结果是() #include voidfun(int*x,int*y) {printf("%d%d",*x,*y); *x=3; *y=4; } voidmain() {intx=1,y=2; fun(&y,&x); printf("%d%d",x,y); } 四、按要求编写下列程序(第1小题16,第2小题13分,共29分) 1•编程实现下面的函数,要求输入一个x的值,输出y值,函数如下: -5(x<0) y=0(x=0) 5(x>0) 2.编写一个程序,将一组数据{6,5,8,1,0,4,7,3,2,9}按从小到大的顺序排列,程序显示排序前和排序后的结果。 参考答案 一、单项选择题(每小题2分,共20分) DCDDCAABAB 二、完成下列的程序填空(每空3分,共27分) 1. i<19-j (a[i]>a[i+1]) t=a[i];a[i]=a[i+1];a[i+1]=t; 2. s[i]-'0' s[i]-'a'+10 s[i]-'A'+10 3. t=*(pointer+3*i+j) *(pointer+3*i+j)=*(pointer+3*j+i) *(pointer+3*j+i)=t 三、写出下列程序的运行结果(每小题8分,共24分) 1、2 2、7 8 3、2143 四、按要求编写下列程序(第1小题13,第2小题16分,共29分) 1•编程实现下面的函数,要求输入一个x的值,输出y值,函数如下: -5(x<0) y=0(x=0) 5(x>0) #include voidmain() {intx,y; printf("enterx: "); scanf("%d",&x); if(x<0) y=-5; else if(x==0)y=0; elsey=5; printf("x=%d,y=%d\n",x,y); } 2.编写一个程序,将一组数据{6,5,8,1,0,4,7,3,2,9}按从小到大的顺序排列, 程序显示排序前和排序后的结果。 #include #defineN10 Voidmain() { inta[N]={6,5,8,1,0,4,7,3,2,9} inti,j,t; printf(“Thearraybeforesorted: ”); for(i=0;i printf(“%4d',a[i]); for(i=0;i<9;i++) {for(j=i+1;j<10;j++) {if(a[i]>a[j]) {t=a[i]; a[i]=a[j]; a[j]=t; } } } printf(“Thearrayaftersorted: ”); for(i=0;i printf(“%4d',a[i]); 专接本计算机微机原理与汇编语言模拟试题及答案( 、单项选择题(每小题1分,共15分) 1.8088/8086的存储器组织是将存储器划分为段,可作为段的起始地址的是()。 A.185A2HB.00020HC.01003HD.0AB456H 2•指令POP[BX]中,目的操作数的段寄存器是()。 A.DSB.ESC.SSD.CS 3.CPU执行“OUT40HAL”指令时,下列信号为高的是()。 A.RDRWK 4.执行1号DOS系统功能调用后,从键盘输入的字符应存放在()。 A.ALB.BLC.CLD.DL 5.间接寻址方式中,操作数处在()中。 A.通用寄存器B.内存单元 C.程序计数器D.堆栈 6.8086在最小模式下,分时使用AD0〜AD15,所以必须外接地址锁存器,当总线上为地址 信息时,通过()信号将地址送入地址锁存器。 A.DENB.ALEC.丄-二D.DT/R 13.浮点加减中的对阶是()° A.将较小的一个阶码调整到与较大的一个阶码相同 B.将较大的一个阶码调整到与较小的一个阶码相同 C.将被加数的阶码调整到与加数的阶码相同 D.将加数的阶码调整到与被加数的阶码相同 14.保护断点就是保存()。 A.中断类型码B.中断服务程序入口地址 C.现场D.当前CS、IP的值 15.对以下类型的中断,优先级最低的是()° A•指令中断B.非屏蔽中断C.可屏蔽中断D•单步中断 二、填空题(每空1分,共20分) 1.指令MOVBX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么有效地址为,物理地址为° 2.对于十六进制表示的数码19.8H,转换为十进制数时为;该数码用压缩BCD码 表示时数据为° 3.已知X的补码为10011001,其原码是;真值为 4•使用DOS功能调用时,子程序的功能号应放在寄存器中。 5.设堆栈段寄存器SS所存放的数据为 2250H,堆栈指示器 SP所存放的数据为0140H, 如压入堆栈7个数据库字,问栈顶地址、 SS和SP各为 、、。 6.使CF标志置1的指令是;使DF标志清0的指令是。 7.组成16MX8位的存储器,需要1MX4位的存储芯片片。 8.8253可编程定时/计数器按照二进制计数,其计数范围是从0到;按照BCD码计 数,其计数范围是从0到。 9.PC机的中断类型有、和不可屏蔽中断三种,不可屏蔽中断的请求信息送CPU 的引脚。 10.8255A的控制字的最高位D7=1时,表示该控制字为控制字。 11.CPU可访问8259的端口地址数为。 三、简答题(每小题5分,共20分) 1.定时器和计数器有什么相同和不同? 2•什么是接口? 硬接口和软接口的含义各是什么? 3.在A/D转换过程中,采样保持电路有什么作用? 在什么情况下可以不使用采样保持电 路? 4.什么是中断? 常见的中断源有哪几类? CPU响应中断的条件是什么? 四、分析题(每小题5分,共15分) 1.若STR是字符串的首地址,阅读程序段,回答问题: LEABX,STR MOVCX,30 LP: CMP[BX],'$' JNZ NEXT MOV [BX],'&' NEXT: INC BX LOOP LP HLT (1)指出程序的功能 (2)对程序的各个语句加上注解。 2.阅读程序段,完成指定问题: NUMDB'ABCDEFGHI MOVAH,01H INT21H ANDAL,0FH DECAL XORAH,AH MOVBX,OFFSETNUM ADDBX,AX MOVDL,[BX] MOVAH,02H INT21H 试回答: (1)上述程序段的功能是什么? (2)如从键盘输入字符‘5'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 计算机 语言程序设计 模拟 试题 答案