C语言程序设计专升本题库
(总分100分,考试时长90分钟)
一、单项选择题(每小题2 分,共 40分)
1、以下叙述中正确的是________。
A、局部变量说明为static存储类,其生存期将得到延长
B、全局变量说明为static存储类,其作用域将被扩大
C、任何存储类的变量在未赋初值时,其值都是不确定的
D、形参可以使用的存储类说明符与局部变量完全相同
2、下列四组常数中,均是合法整型常量的一组是________。
A、160 0xffff 011
B、-0xcdf 01a 0xe
C、-01 986,012 0668
D、-0x48a 2e5 0x
3、设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d) y=0; else y=1; 该语句所表示的含义是________。
A、y=0,a
B、y=0,a
y=1,a≥b y一1,a≥b且c≠d
C、y=0,a
D、y=0,a
y=1,a<B且C≠D y="1,c≠d
4、下面的代码int i=10; 之后的for循环语句,语法正确,不会编译出错的是________。
A、for(i=0,i<10,i++)
B、for{
i=0;i<10;i++}
C、for( ;i>5;i--)
D、for(i=0;i<10;i++;)
5、下列关于函数参数的叙述中,正确的是________。
A、在函数原型中不必声明形参类型
B、函数的实参和形参共享内存空间
C、函数形参的生存期与整个程序的运行期相向
D、函数的形参在函数被调用时获得初始值
6、以下选项中,不能作为合法常量的是________。
A、1.234e04
请写出至少5个字符串函数 B、1.234e0.4
C、1.234e+4
D、1.234e0
7、若有说明:int a[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为: ( )
A、2
B、3
C、4
D、无确定值
8、与二进制小数0.1等值的十六进制小数为________。
A、0.1
B、0.2
C、0.4
D、0.8
9、下述程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,则程序空白上应该填写的是________。
main()
{
char s1[]="chinese",s2[]="japanese";
int i;
for(i=0;s1[i]='\0'&&s2[i]!='\0';i++) if(s1[i]==s2[i]&&i<7) ________;
}
A、putchar(s2[i]);putchar(i)
B、puts(s1[i],i)
C、printf("%c%d\n",s2[i]。i)
D、printf("%C",s1[]);printf("%d\n",i)
10、以下能正确定义一维数组的选项是________。
A、int a[5]={
0.1,2.3.4,5);
B、char a[]={
0,1,2,3,4,5);
C、char a={'A’,'B','C');
D、int a[5]=”0123”;
11、以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空:
#include<stdio.h> findmax(int*s,int t,int*k)
{
int p;
for(p=0,*k=p;p<t;p++) if(s[p]>s[*k])________;
}
main()
{
int a[10],i,k;
for(i=0;i<10;i++)scanf("%d",&a[i]);
findmax(a,10,&k);
printf("%d,%d\n",k,a[k]);
}
A、k=p
B、*k=p-s
C、k=p-s
D、*k=p
12、变量的指针是________。
A、变量的值
B、变量存储单元的地址
C、指针变量
D、变量存储单元的字节数
13、有以下程序:
int f(int n)
{
if(n ==1) return 1;
else return f(n-1)+1;
}
main( )
{
int i,j=0;
for(i=1;i<3;i++) j+=f(i);
printf("%d\n",j);
}
程序运行后的输出结果是________。
A、4
B、3
C、2
D、1
14、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是________。
struct node
{
char data;
struct node *next;
}
a,b,*p=&a,*q=&b;
A、3 4 7 5
B、3 5 7 4
C、1 2 3 4
D、1 2 3 5
15、有以下程序:
void fun(int*pl,int*p2,int*s)
{
s=(int*)malloc(sizeof(int));
*s=*pl+*p2;
free(s);
}
main()
{
int a=1,b=40,*q=&a;
fun(&a,&b,q);
printf("%d\n",*q);
}
程序运行后的输出结果是________。
A、42
B、0
C、1
D、41
16、有以下程序
#include <stdio.h>
main()
{
int a[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{
case 0: switch(a[i]%2)
{
case 0:a[i]++;
break;
case 1:a[i]--;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论