沈阳大学历年计算机C语言样卷

本试卷为沈阳大学历年计算机C语言样卷,题目包括:单项选择题,填空题,编程题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。

计算机C语言样卷

一、单项选择题 (共20题,每题2分,共计40分)

(  A  )
1、以下叙述中正确的是________。
A、a是实型变量,C允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值
B、在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式
C、执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
D、已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3
(  C  )
2、关于结构化程序设计原则和方法的描述错误的是________。
A、选用的结构只准许有一个入口和一个出口
B、复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C、不允许使用GOTO语句
D、语言中若没有控制结构,应该采用前后一致的方法来模拟
(  D  )
3、char *s="\t\\name\\address\n"; 指针 s 所指字符串的长度为: 。
A、说明不合法
B、19
C、18
D、15
(  C  )
4、若在某函数内部有定义:int a[3][4]; 则数组a中各元素________。
A、可在程序的运行阶段得到初值0
B、可在程序的编译阶段得到初值0
C、不能得到确定的初值
D、可在程序的编译或运行阶段得到初值0
(  C  )
5、以下关于结构化程序设计的叙述中正确的是________。
A、一个结构化程序必须同时由顺序、分支、循环三种结构组成
B、结构化程序使用goto语句会很便捷
C、在C语言中,程序的模块化是利用函数实现的
D、由三种基本结构构成的程序只能解决小规模的问题
(  C  )
6、下列语句序列执行后,i的值是________。 int i=10; do { i-=2; } while(i>6);
A、10
B、8
C、6
D、4
(  C  )
7、下列关于数组初始化的说法,正确的是________。
A、对于int a[5];它的数组元素初值为0
B、int a[5]={1,3,5,7,8,9};是可以的,这时数组长度自动变为6
C、static int a[5];的数组元素初值为0
D、int a[5]={1.3,5};是不合法的,因为数组长度为5,而仅有3个数据,不知赋给哪个元素
(  C  )
8、以下选项中,非法的字符常量是________。
A、'\t'
B、'\17'
C、"\n"
D、'\xaa'
(  A  )
9、有以下程序:
main()
{
int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是______。
A、12353514
B、12353513
C、12343514
D、12343513
(  B  )
10、下列变量定义中,错误的是______。
A、int x=3;
B、float f;d;
C、String s="Hello!";
D、boolean b=true;
(  D  )
11、如果要求在if后的判断条件是a不等于0,则下列选项中能正确表达这一关系的是________。
A、a<>0
B、!a
C、a=0
D、a
(  A  )
12、设有以下语句,其中不是对a数组元素的正确引用的是:______(其中0≤i<6)int a[6]= {11,22,33,44,55,66 },*m=a;
A、&(*(a+i) )
B、*(&a[i])
C、m[i]
D、a[i]
(  B  )
13、以下程序的输出结果是______。
#define SQR(X) X*X
main()
{
int A,k=2,m=1;
A=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
A、1
B、7
C、9
D、3
(  D  )
14、有以下程序段int n=0,p;
do
{
scanf("%d",&p);
n++;
}
while(p!=12345&&n<3);
此处do-while循环的结束条件是______。
A、p的值不等于12345并且n的值小于3
B、p的值等于12345并且n的值大于等于3
C、p的值不等于12345或者n的值小于3
D、p的值等于12345或者n的值大于等于3
(  D  )
15、定义单精度实型变量的正确的语句是________。
A、long f;
B、double f=15.3;
C、real f=15.3;
D、float f=15.3;
(  A  )
16、以下关于 c 语言数据类型使用的叙述中错误的是________。
A、若只处理“真”和“假”两种逻辑值,应使用逻辑类型
B、若要保存带有多位小数的数据,可使用双精度类型
C、整数类型表示的自然数是准确无误差的
D、若要处理“人员信息”等含有不同类型的相关数据,应自定义结构体类型
(  C  )
17、数组名作为实参数传递给函数时,数组名被处理为________。
A、该数组的长度
B、该数组的元素个数
C、该数组的首地址
D、该数组中各元素的值
(  D  )
18、以下对结构体变量stu1中成员age的非法引用是________。
struct student
{
char name[10];
int age ;
}
stu1 ,*p;
p=&stu1;
A、stu1.age
B、p->age
C、(*p).age
D、student.age
(  C  )
19、下面程序段。x=3;
do
{
y=x--;
if(!y)
{
printf("*");
continue;
}
printf("#");
}
while(1<=x<=2);
A、将输出##
B、将输出###*
C、是死循环
D、含有不合法的控制表达式
(  D  )
20、在说明一个结构体变量时系统分配给它的存储空间是________ 。
A、该结构体中第一个成员所需存储空间
B、该结构体中最后一个成员所需存储空间
C、该结构体中占用最大存储空间的成员所需存储空间
D、该结构体中所有成员所需存储空间的总和

二、填空题 (共10题,每题2分,共计20分)

1、一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:________ 。
2、以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。
void sstrcpy(char *s,char *t)
{
while(*s++= ________);
}
main( )
{
char str1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
3、下列程序段的运行结果是_____。
char s1[20]="abcdef", s2[5]="abc";
strcpy(s1,s2);
printf("%c", s1[0]);
4、实型常量有两种表示方法:小数形式和【1】形式。
5、ferror函数用来检测文件读写时是否发生错误,若未发生读写错误,则返回值是________。
6、下列程序段的运行结果是_____。
main()
{
int n,s=0;
for(n=1;n<=6;n++)
{
if(n%3==0)continue;
s=s+n;
}
printf("%d\n",s);
}
7、在c语言中,标识符是由英文字母、( )、下划线组成的。
8、设a=5,b=2,则表达式"!a+b"的值是________。
9、|x|<10,写作程序为
10、当执行以下程序时,如果输入abc,则输出结果是:
#include <stdio.h>
#include <string.h>
void main()
{
char ss[10]="1,2,3,4,5";
gets(ss);
strcat(ss,"6789");
printf("%s\n",ss);
}

三、编程题 (共3题,每题0分,共计40分)

1、给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。
输入格式:
输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。
输出格式:
在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。
输入样例:
3
Programming in C
21.5
Programming in VB
18.5
Programming in Delphi
25.0
输出样例:
25.00, Programming in Delphi
18.50, Programming in VB
2、编程将1...100间能被2、3、5分别整除的数的和求出来并输出。注意,在判断时要按照2、3、5的先后次序来确定优先顺序,如6既能被2整除,又能被3整除,则只算到能被2整除的这种情况里。
3、有一篇文章,共有多行文字(不超过10行), 最后一行为end。要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数。统计结果不包括最后一行的end。