沈阳师范大学C语言
本试卷为沈阳师范大学C语言,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言
一、理论基础 (共20题,每题1分,共计10分)
( A )
1、有定义:"int a=2,b=3,c=4;",则下列选项中值为0的表达式是________。
( C )
2、以下选项中不合法的用户标识符是________。
( C )
3、设有int x=11;则表达式(x+1/3)的值是________。
( D )
4、下列选项中不是字符常量的是________。
( B )
5、表达式k=1*3 ? 2 : 0的值是________。
( B )
6、在64位计算机中,一个字长所占字节数为________。
( D )
7、以下不正确的 c 语言标识符是______。
( C )
8、设有如下定义: struck sk
{
int a;
float b;
} data;
int *p;
若要使 p 指向 data 中的 a 域,正确的赋值语句是______。
( A )
9、在 c 语言中 , 以下叙述不正确的是 ___________.
( B )
10、条件语句________。
( D )
11、关于异常的含义,下列描述中最正确的一个是________。
( A )
12、下列运算符属于关系运算符的是______。
( A )
13、若x、y、z、m均为int型变量,则执行下面语句后m的值是________。 m=1; x=2; y=3; m=(m<x) ? m : x; m=(m<y) ? m : y; m=(m<y) ? m : z;
( B )
14、无符号二进制数后加上一个0,形成的数是原来的几倍?
( A )
15、对于类型相同的两个指针变量之间,不能进行的运算是________。
( C )
16、以下不能定义为用户标识符的是________。
( C )
17、若ch为char型变量,k为int型变量(已知字符a的ascii十进制代码为97), 则以下程序段的执行结果是________。 ch='a';
k=12;
printf("%x,%o,",ch,ch,k);
printf("k=%%d\n",k);
( D )
18、以下叙述正确的是________。
( C )
19、在下列选项中,不正确的表达式是________。
( B )
20、下列标识符中,不合法的 C语言用户自定义标识符是()。
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是________。
( C )
2、设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d) y=0; else y=1; 该语句所表示的含义是________。
( C )
3、下列说法中不正确的是________。
( C )
4、执行以下程序段后,w的值为________。 int w='a',x=14,y=15; w=((x||y)&&(w<'a'));
( A )
5、switch语句不能用于下列哪种数据类型 ( )
( C )
6、有以下程序
main()
{
int i=1,j=1,k=2;
if((j++‖k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
}
执行后输出结果是________。
( A )
7、有以下程序
main()
{
int i;
for(i=0;i<3;i++)
switch(i)
{
case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}
}
执行后输出的结果是________。
( A )
8、分析下列程序:
#include<stdio.h>
main()
{
int*p1,*p2,*p;
int a=6,b=9;
p1=&a;
p2=&b;
if(a<b)
{
p=p1;
p1=p2;
p2=p;
}
printf("%d,%d",*p1,*p2);
printf("%d,%d",a,b);
}
程序的输出结果为________。
( A )
9、选择出合法的if语句(设int x,a,b,c;)________。
( C )
10、a,b 为整型变量,二者均不为 0,以下关系表达式中恒成立的是()。
三、循环结构 (共10题,每题1分,共计10分)
( C )
1、下列叙述中正确的是________。
( C )
2、有以下程序
#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]--;
}
break;
case 1:a[i]=0;
}
for(i=0;i<4;i++) printf("%d ",a[i]);
printf("\n");
}
程序运行后的输出结果是________。
( B )
3、下面程序的输出结果是 __________.
#include<stdio.h>
void main( )
{
int x=3;
do
{
printf("%d ",x-=2);
}
while(!(--x));
}
( B )
4、t为int类型,进入下面的循环之前,t的值为0。while(t=1) {...}则以下叙述中,正确的是________。
( B )
5、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是________。
( D )
6、有以下程序
#include<stdio.h>
main ()
{
int i, n;
for (i = 0; i < 8; i++)
{
n = rand () % 5;
switch (n)
{
case 1:
case 3:
printf ("%d\n", n);
break;
case 2:
case 4:
printf ("%d\n", n);
continue;
case 0:
exit (0);
}
printf ("%d\n", n);
}
}
以下关于程序执行情况的叙述,正确的是______。
( B )
7、以下程序的功能是计算s=1+12+123+1234+12345。
#include <stdio.h>
main()
{
int t=0,s=0,i;
for(i=1;i<=5;i++) {
t=i+_____;
s=s+t;
}
printf("s=%d\n",s);
}
则______部分是________。
( A )
8、以下关于continue语句的描述中正确的是________。
( C )
9、以下是死循环的程序段是________。
( C )
10、以下描述正确的是________。
四、数组/指针数组 (共10题,每题1分,共计10分)
( B )
1、以下能正确定义二维数组的是________。
( C )
2、下述对c语言字符数组的描述中错误的是________。
( C )
3、以下不能对二维数组a进行正确初始化的语句是________。
( C )
4、对二维数组的正确定义是________。
( C )
5、若有以下说明 : char s1[ ]={"tree"
} ,s2[]={"flower"};, 则以下对数组元素或数组的输出语句中 , 正确的是 _______ .
( A )
6、在c语言中,若函数调用时实参是数组名,则传递给对应形参的是______。
( B )
7、设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是________。
( C )
8、下面程序的输出结果是________。
#include<stdio.h>
main() {
char a[]='a','b','c','d','f','g',*p;
p=a;
printf("%c\n",*p+4);
}
( D )
9、以下关于排序算法的叙述中,正确的是________。
( A )
10、若有如下定义和语句,且 0<=i<5,下面( )是对数值为 3 数组元素的引用
int a[]={1,2,3,4,5},*p,i;
p=a;
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( B )
1、c语言中,下列不合法的字符串常量是________。
( C )
2、以下叙述中不正确的是________。
( A )
3、下列字符串是标识符的是: 。
( B )
4、有以下程序
#include<stdio.h>
main()
{
char s[]="012xy\08s34f4w2";
int i, n=0;
for(i=0; s[i]!=0; i++) if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n", n);
}
程序运行后的输出结果是______。
( C )
5、下列选项中,表示字符串末尾的结束标志是________。
( B )
6、宏定义用于将一个标识符定义为一个
( A )
7、下面不正确的字符串常量是________。
( B )
8、下列数据中属于"字符串常量"的是________。
( A )
9、下面程序段输出两个字符串中对应相等的字符。请分析程序填空。
char x[]="programming";
char y[]="fortran";
int i=0;
while (x[i]!='\0'&&y[i]!='\0')
if (x[i]==y[i]) printf("%c", _____);
else i++;
( A )
10、char a[]="This is a program.";输出前 5 个字符的语句是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( D )
1、以下叙述中不正确的是________。
( B )
2、在一个c语言程序中,________。
( C )
3、每个c程序中都必须有且仅有一个________。
( D )
4、下列关于函数参数的叙述中,正确的是________。
( A )
5、c程序的执行是从( )开始执行的
( B )
6、以下叙述中正确的是________。
( A )
7、以下叙述中正确的是______。
( A )
8、下面程序的输出结果是________。
# include <stdio.h> int x=1;
void main()
{
int x=2;
printf("%d,",x);
if(x==1)
{
int x=4;
printf("%d,",x++);
}
printf("%d",x++);
}
( B )
9、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是________。
main()
{
int *p,*q,a,b;
p=&a;
printf("input a:");
scanf("%d",*p);
}
( A )
10、以下叙述正确的是________。
七、指针 (共10题,每题1分,共计10分)
( A )
1、设int a[10],*p=a; 数组元素a[4]的正确引用是________。
( D )
2、在下面的字符数组定义中,哪一个有语法错误 。
( D )
3、以下叙述不正确的是________。
( D )
4、设有语句: x=inputbox("输入数值","0","示例") 程序运行后,如果从键盘上输人数值10并按回车键,则下列叙述中正确的是______。
( B )
5、某一维数组中依次存放了数据元素12,23,30,38,41,52,54,76,85,在用折半(二分)查找方法(向上取整)查找元素54时,所经历"比较"运算的数据元素依次为________。
( C )
6、若定义了以下函数:
void f(……)
{
……*p=(double*)malloc(10*sizeof(double));
……
}
p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是______。
( D )
7、下列关于函数的调用方式,说法不正确的是________?
( D )
8、对于 if(表达式)语句,以下说法正确的是________。
( A )
9、下面程序的功能是将字符串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);
}
( A )
10、C语言程序中,当调用函数时()。
八、结构体 (共10题,每题1分,共计10分)
( C )
1、有以下程序
typedef struct
{
char name[9];
char sex;
float score [2];
} stu;
stu f(stu a) {
stu b={"zhao", 'm', 85.0, 90.0};
int i;
strcpy(a.name, b.name);
a.sex=b.sex:;
for(i=0;i<2;i++) a.score[i]=b.score[i];
return a:
}
main() {
stu c=
{
"qian", 'f', 95.0, 92.0
};
stu d=f(c);
printf("%s, %c, %2.0f, %2.0f", d.name, d.sex, d.score[0], d.score[1]); ) 程序的运行结果是________。
( D )
2、有以下定义和语句
struct workers
{
int num;
char name[20];
char c;
srruct
{
int day;
int month;
int year;
}
s;
};
struct workers w,*pw;
pw=&w 能给w 中year 成员赋1980 的语句是________。
( B )
3、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是________。
struct stu
{
int i;
int name;
} st,*p;
p=&st;
( C )
4、以下对结构体类型变量的定义中,不正确的是________。
( C )
5、以下程序的输出结果是
#include<stdio.h>
struct st
{
int x;
int *y;
}
*p;
int dt[4]= {10,20,30,40 };
struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};
main()
{
p=aa;
printf("%d\n",++(p->x));
}
( B )
6、设有以下说明语句:
struct stu
{
int a;
float b;
}
suttype;
则下面叙述不正确的是________。
( D )
7、有如下定义: struct student
{
char name[10];
int age;
char gender;
}
std[3], *p=std;
则以下各输入语句中错误的是________。
( D )
8、以下叙述中正确的是________。
( A )
9、在下列程序段中,枚举变量c1,c2的值依次是________。
enum color
{
red,
yellow,
blue=4,
green,
white
}
c1,c2;
c1=yellow;
c2=white;
printf("%d,%d\n",c1,c2);
( A )
10、定义共用体的关键字是________。
九、程序题 (共10题,每题1分,共计10分)
( C )
1、有以下程序
#include <stdio.h>
int main()
{
int a = 1, b = 2, c = 3, d = 0;
if (a == 1 && b++ == 2)
if (b != 2 || c-- != 3)
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, b, c);
}
程序运行后的输出结果是________。
( C )
2、有以下程序
# define f(x) (x*x)
main()
{
int i1, i2;
i1=f(8)/f(4) ;
i2=f(4+4)/f(2+2) ;
printf("%d, %d\n",i1,i2);
}
程序运行后的输出结果是________。
( A )
3、有以下程序
#define f(x) x*x
main( )
{
int i;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后输出结果是________。
( C )
4、有以下程序
#include <string.h>
main()
{
char str[][20]={"hello","beijing"},*p=str;
printf("%d\n",strlen(p+20));
}
程序运行后的输出结果是________。
( A )
5、有程序:
void fun(int a,int b,int c)
{
a=456;
b=567;
c=678;
}
main( )
{
int x=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",z,y,x);
}
输出结果是________。
( B )
6、有如下程序
main( )
{
int n=8;
while(n>6)
{
n--;
printf("%d",n);
}
}
该程序段的输出结果是______。
( A )
7、有以下程序段int m=0,n=0;
char c='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:20b20↙,则输出结果是______。
( D )
8、下面程序
main()
{
int x=32;
printf("%d\n",x=x<<1);
}
的输出是______。
( B )
9、下述程序段的运行结果是________。
main( )
{
static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int b[3][2],i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
b[i][j]=a[j][i]+a[i][j];
printf(''%5d'',b[i][j]);
}
printf(''\n'');
}
}
18
( D )
10、以下程序的运行结果是________。
main()
{
int i=1,sum=0;
while(i<10) sum=sum+1;
i++;
printf("i=%d,sum=%d",i,sum);
}
相关标签:
- C语言
- 沈阳师范大学