南京财经大学历年C语言专升本模拟考试
本试卷为南京财经大学历年C语言专升本模拟考试,题目包括:单项选择题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
本卷包括如下题型:
C语言专升本模拟考试
一、单项选择题 (共50题,每题2分,共计100分)
( D )
1、设有定义:int x=2; ,以下表达式中,值不为6的是________。
( C )
2、以下叙述中正确的是________。
( A )
3、设int x=7,则~x的值是________。
( C )
4、若有定义"float a=25,b,*p=&b;",则下列对赋值语句"*p=a;"和"p=&a;"的正确解释为( )。
( A )
5、若变量a、b、x、i都已正确定义并赋值,则以下符合c语言语法的表达式是________。
( C )
6、计算机内部运算使用的数是________。
( B )
7、以下能正确定义且赋初值的语句是________。
( D )
8、在下列选项中,没有构成死循环的程序段是________。
( C )
9、运行以下程序后,如果从键盘上输入china#<回车>, 则输出结果为
#include <stdio.h>
main( )
{
int v1=0,v2=0;
char ch;
while ((ch=getchar( ))!='#') switch(ch)
{
case 'a': case 'h': default: v1++;
case 'o': v2++;
}
printf("%d,%d\n",v1,v2);
}
( A )
10、有以下程序
struct stu
{
char name[10];
int num;
};
void f(char *name, int num)
{
struct stu s[2]={{"sundan",20044},{"penghua",20045}};
num = s[0].num;
strcpy(name, s[0].name);
}
main()
{
struct stu s[2]={{"yangsan",20041},{"lisiguo",20042}},*p;
p=&s[1];
f(p->name, p->num);
printf("%s %d\n", p->name, p->num);
}
程序运行后的输出结果是________。
( B )
11、以下数组定义中错误的是________。
( D )
12、设有定义:int n=0,*p=&n,**q=&p; 则以下选项中,正确的赋值语句是________。
( D )
13、有以下程序
main()
{
int x=3, y=2, z=1;
printf("%d\n",x/y&~z);
}
程序运行后的输出结果是________。
( B )
14、在一个应用程序中有如下定义:int a[]= {1,2,3,4,5,6,7,8,9,10 },为了打印输出数组a的最后一个元素,下面正确的代码是________。
( D )
15、设char str[100]; int i=5; 则引用数组元素的错误形式的是________。
( B )
16、定义如下一维数组:int a[5],*p; 则下列描述错误的是________。
( C )
17、若有定义:int a=4,b=5; float x=3.4,y=2.1; 则下列表达式的值为________。 (float)(a+b) /2+(int)x%(int)y
( C )
18、若变量c为char类型,则能正确判断出c为大写字母的表达式是________。
( A )
19、若在以下定义和赋值语句,则才s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为 int s[2][3]=0,( *p)[3]; p=s;
( C )
20、下列各项关于变量的描述中正确的是________。
( A )
21、下列各循环语句中,不是死循环的是________。
( A )
22、下列是用户自定义标识符的是________。
( B )
23、以下叙述中正确的是________。
( C )
24、计算斐波那契数列第n项的函数定义如下: int fib(int n)
{
if(n==0) return1;
else if(n==1)
return 2;
else
return fib(n-1)+fib(n-2);
}
若执行函数调用表达式fib(2),函数fib被调用的次数是________。
( C )
25、设有如下说明
typedef struct st
{
long a;
int b;
char c[2];
}
new;
则下面叙述中正确的是______。
( A )
26、设有声明语句:char a='\72'; 则变量a________。
( C )
27、以下选项中,非法的字符常量是________。
( C )
28、语句"printf("a\bre"\'hi\'y\\\bou\n"); "的输出结果是________。
( A )
29、已知有数组定义 char a[3][4]; 下列表达式中错误的是________。
( A )
30、以下叙述中正确的是______。
( D )
31、以下程序调用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 )
32、以下程序的输出结果是 _______ 。
main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:switch(y)
{
case 0:a++;
break;
case 1:b++;
break;
}
case 2:a++;
b++;
break;
}
printf("%d,%d\n",a,b);
}
( C )
33、请读程序片段(字符串内没有空格字符):printf("%d\n",strlen("ats\n012\1\\") );
上面程序片段的输出结果是______。
( D )
34、若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是______。
( A )
35、以下能正确定义二维数组的是______。
( C )
36、有以下程序
#include <stdio.h>
main()
{
char a=4;
printf("%d\n",a=a<<1);
}
程序的运行结果是______。
( B )
37、已知:int a[2][3]; 则对数组元素的非法引用是________。
( D )
38、利用函数fseek可实现的操作是________。
( A )
39、设有以下代码其中,循环体 a 与循环体 b 相同,以下叙述正确的是________。
( B )
40、若变量已正确定义:for(x=0,y=0;(y!=99&&x<4);x++) 则以上 for 循环()
( D )
41、下面说法正确的是________。
( C )
42、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
( C )
43、static struct
{
int a1;
float a2;
char a3;
}
a[10]={1,3.5,'a'};
说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存 储方式,其中被初始化的下标变量是________。
( D )
44、下列叙述中正确的是________。
( D )
45、下列标识符中不合法的是________。
( A )
46、以下程序的输出结果为________。
#include <stdio.h>
int main( )
{
int i=1,j=1;
printf("%d %d\n",i,j++);
}
( A )
47、下面程序的功能是将字符串s 中所有的字符'c'删除。
#include "stdio.h"
main()
{
char s[80];
int i,j;
gets(s);
for (i=j=0;s[i]!='\0';i++)if (s[i]!='c') ;
s[j]='\0';
puts(s);
}
( C )
48、判断两个字符串是否相等,正确的表达方式是
( C )
49、以下选项中合法的实型常数是()。
( A )
50、下列变量定义中合法的是()。
相关标签:
- C语言
- 南京财经大学
- 专升本模拟考试