上海电机学院计算机C语言专升本题库及答案_第1页
上海电机学院计算机C语言专升本题库及答案_第2页
上海电机学院计算机C语言专升本题库及答案_第3页
上海电机学院计算机C语言专升本题库及答案_第4页
上海电机学院计算机C语言专升本题库及答案_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

计算机C语言专升本题库(总分100分,考试时长90分钟)一、单项选择题(每小题2分,共40分)1、下列字符中,ascii码值最小的是________。 A、a B、A C、x D、Y2、若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10,0,b赋予22.0,c赋予33.0,下列不正确的输入形式是________。 A、10<回车>22<回车>33<回车> B、10.0,22.0,33.0<回车> C、10.0<回车>22.033.0<回车> D、1022<回车>33<回车>3、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是________。 A、k%2 B、k%2==1 C、(k%2)!=0 D、!k%2==14、执行以下循环语句时,下列说法正确的是________。x=-1;

do

{

x=x*x;

}

while(x==0); A、循环体将执行一次 B、循环体将执行两次 C、循环体将执行无限次 D、系统将提示有语法错误5、二维数组a的每个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。若a按行先存储,元素a[8,5]的起始地址与当a按列先存储时的元素()的起始地址相同。设每个字符占一个字节。 A、A[8,5] B、A[3,10] C、A[5,8] D、A[0,9]6、以下选项中,不能作为合法常量的是________。 A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e07、设有如下程序段chars[20]="bejing",*p;p=s;则执行p=s;语句后,以下叙述正确的是________。 A、可以用*p表示s[0] B、s数组中元素的个数和p所指字符串长度相等 C、s和p都是指针变量 D、数组s中的内容和指针变量p中的内容相等8、在c语言中,要求运算数必须是整数的运算符是________。 A、< B、% C、/ D、>9、以下关于字符串的叙述中正确的是________。 A、c语言中有字符串类型的常量和变量 B、两个字符串中的字符个数相同时才能进行字符串大小的比较 C、可以用关系运算符对字符串的大小进行比较 D、空串一定比空格打头的字符串小10、若有以下定义和语句:intw[2][3],(*pw)[3];pw=w;则对w数组元素非法引用是______。 A、*(w[0]+2) B、*(pw+1)[2] C、pw[0][0] D、*(pw[1]+2)11、在以下叙述中,不正确的选项是__________。 A、C语言程序总是从main()函数开始执行 B、在C语言程序中,被调用的函数必须在main()函数中定义 C、C程序是函数的集合,在这个函数集中包括标准函数和用户自定义函数 D、在C语言程序中,函数的定义不能嵌套,但函数的调用可以嵌套12、以下选项中合法的字符常量是______。 A、"B" B、'\010' C、68 D、D13、下面描述正确的是________。 A、两个字符串包含的字符个数相同时,才能比较字符串 B、字符个数多的字符串比字符个数少的字符串大 C、字符串"STOP"与"STOP■"相等 D、字符串"That"小于字符串"The"14、以下对枚举类型名的定义中正确的是______。 A、enuma={one,two,three}; B、enuma{one=9,two=-1,three}; C、enuma={"one","two","three"}; D、enuma{"one","two","three"};15、下面程序的输出结果是________。

main()

{

intnum=0;

while(num<=2){

num++;

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

}

} A、1

2

3

4 B、1

2

3 C、1

2 D、116、下列while循环,将执行

inti=4;

while(--i)printf("%d",i); A、3次 B、4次 C、0次 D、无限次17、若有以下说明语句:

structstudent

{

intnum;

charname[];

floatscore;

}stu;

则下面的叙述不正确的是:() A、struct是结构体类型的关键字 B、structstudent是用户定义的结构体类型 C、num,score都是结构体成员名 D、stu是用户定义的结构体类型名18、下列程序的输出结果是______。intfun(intx,inty,int*cp,int*dp)

{

*cp=x+y;

*dp=x-y;

}

main()

{

inta,b,c,d;

a=30;

b=50;

fun(a,b,&c,&d);

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

} A、50,30 B、30,50 C、80,-20 D、80,2019、若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为______。 A、*(a+j*n+i) B、*(a+i*n+j) C、*(*(a+i)+j) D、*(*a+i)+j20、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是________。

structstu{

inti;

intname;

}st,*p;p=&st; A、st.i B、*p.i C、(*p).i D、p->i二、填空题(每小题2分,共20分)1、若i为整型变量,且i%2==0的值为1,则变量i为________数。2、%d怎么实现(两位数)左右对齐3、&&0||2的值为________。4、C语言源程序经过编译后,生成文件的后缀名是___。5、下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。intn=0,ch;

ch=getchar();

while(________)

{

if(________)n++;

c=getchar();

}6、写出下列程序的运行结果。

#include"stdio.h"

main()

{

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

intm,n,*p;

p=&a[0];

m=*(p+1);

n=*(p+4);

printf("%d%d%d",*p,m,n);

}7、在scanf函数中,用符号______表示变量的地址。8、若有"inta[3][2]={{1,2},{3},{4,5}};",则a[1][1]的值是________。9、下列程序段的运行结果是_____。

chars1[20]="abcdef",s2[5]="abc";

strcpy(s1,s2);

printf("%c",s1[5]);10、下列程序段的运行结果是________。

chars1[20]="abcdef",s2[5]="abc";

strcpy(s1,s2);

printf("%c",s1[2]);三、编程题(每小题分,共40分)1、编写程序:计算并输出一维数组a[10]中的最大值。(本题10分)2、任意输入两行字符串,把第二行字符串连接到第一行字符串末尾(不用strcat函数)。(本题14分)3、通过函数调⽤实现:讲结构体数组中的三个元素按num成员进⾏升序排列。要求:

①数组元素依次赋初值为:{12,"sunny",89.1}、{8,"henry",73.5}、{21,"lucy",91.7}。

②结构体定义如下:structs{intnum;charname[30];floatscore;};(本题16分)

参考答案一、单项选择题1、B【解析】a、A、x、Y对应的ASCII码值分别是0001110、0001100、1000111、1001101,故正确答案为B。2、B【解析】在C语言中,当一次输入多个数据的时候,数据之间要用间隔符,合法的间隔符可以是空格、制表符和回车符。逗号不是合法的间隔符。3、D4、A5、B【解析】二维数组A[0:8,1:10],设起始地址为0,数组元素A[i,j]按行存储公式为:Loc(A[i,j])=L1+(i-1)×U2×d+(j-1)×d,数组元素A[i,j]按列存储公式为:Loc(A[i,j])=L1+(j-1)×U2×d+(i-1)×d,可得i=3,j=10。6、B【解析】C语言的语法规定,字母e(E)之前必须有数字,且e(E)后面的指数必须是整数,而选项B)中,e(E)后面的指数是小数,所以不合法。7、A8、B9、D10、B11、B12、B13、D14、B15、C16、D17、D18、C19、C20、B【解析】本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式即(*p).i和p->i。二、填空题1、偶2、%2d和%-2d|3、['1(或真)']4、.c5、['ch!=’\\n’ch>=0’0’','&&ch<=’9’']6、1257、&8、09、f10、c三、编程题1、#include<stdio.h>

main()

{

inta[10],i,max=0;

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

{

scanf("%d",a[i]);

if(max<a[i])max=a[i];

}

printf("%d",max);

getch();

}2、#include<stdio.h>

#include<string.h>

intmain()

{

chars1[80],s2[80];

inti,l1,l2,j;

gets(s1);

gets(s2);

l1=strlen(s1);

l2=strlen(s2);

for(i=l1,j=0;j<l2;i++,j++){

s1[i]=s2[j];

}

puts(s1);

return0;

}3、写法1:在函数外部定义结构体变量并且赋值,参数值为空。

charname[30];

floatscore;

}a[3]={{12,"sunny",89.1},{8,"henry",73.5},{21,"lucy",91.7}};

voidfun()

{

inti,j;

structst;

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

{

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

{

if(a[j].num>a[j+1].num)

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

}

intmain()

{

inti;

fun();

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

{

printf("%d,%s,%f\n",a[i].num,a[i].name,a[i].score);

}

return0;

}

8,henry,73.500000

12,sunny,89.099998

21,lucy,91.699997

写法2:在主函数中定义变量,通过参数传递变量值

charname[30];

floatscore;

};

voidfun(structs*a,intn)

{

inti,j;

structst;

for(i=0;i<n-1;i++)

{

for(j=0;j<n-1-i;j++)

{

if(a[j].num>a[j+1].num)

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

}

温馨提示

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

评论

0/150

提交评论