宁波工程学院2023年C语言样卷
本试卷为宁波工程学院2023年C语言样卷,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言样卷
一、理论基础 (共20题,每题1分,共计10分)
( B )
1、若变量已正确定义为float型,要通过输入语句:scanf("%f%f%f",&a,&b,&c);给a赋值11.0,b赋值22.0,e赋值33.0,不正确的输入形式是________。
( B )
2、若程序中有宏定义行:#define N 100,则以下叙述中正确的是________。
( D )
3、有以下程序
main( )
{
int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf("%d\n",s);
}
程序执行后的输出结果是________。
( A )
4、变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是________。
( B )
5、以下运算符中优先级最高的运算符为________。
( D )
6、若有以下定义和语句: double r=99 , *p=&r ; *p=r ; 则以下正确的叙述是______。
( D )
7、在浮点数编码表示中, (1) 在机器数中不出现,是隐含的。
( D )
8、数据的存储结构是指________。
( D )
9、与二进制小数0.1等值的十六进制小数为________。
( B )
10、如果一个表达式包含算术运算、关系运算、逻辑运算和字符运算时,运算的先后顺序是________。
( C )
11、结构化程序设计主要强调程序的()
( A )
12、下列语句中,正确的是______。
( A )
13、在标准ascii码表中,若英文字母i的十进制码值是105,则小写字母f的十进制码值为______。
( D )
14、下列关于表达式的描述中,错误的是________。
( A )
15、结构化程序由三种基本结构组成,三种基本结构组成的算法
( C )
16、下面四个选项中,均是正确的八进制数或十六进制数的选项是________。
( C )
17、若有定义:int a=1,b=2,c=3,d=4,m=2,n=2; 则执行(m=a>b)&&(n=c>d)后 n 的值是________。
( A )
18、c风格的注释* c 风格的注释,也称块注释或多行注释,以 ▁▁▁ 开始,以 ▁▁▁ 结束。
( B )
19、变量的指针含意是指变量的____
( B )
20、为了避免在嵌套的条件语句if-else 中产生二义性,c 语言规定: else子句总是与配对________。
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、与 y=(x>0?1:x<0?-1:0); 的功能相同的if语句是________。
( D )
2、下列描述正确的是________。
( C )
3、若a的值为3时,下列程序段被执行后,c的值是________。 int c = 1; if (a>0) if (a>3) c = 2; else c = 3; else c = 4;
( A )
4、if语句的基本形式是:if(表达式)语句,以下关于"表达式"值的叙述中正确的是______。
( D )
5、若a和b均是整型变量并已正确赋值,正确的switch语句是________。
( C )
6、若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是________。
( C )
7、c语言中下面哪个不是条件语句?
( D )
8、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=3则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。
( A )
9、有如下程序
main()
{
int x=1,a=5,b=5;
switch(x)
{
case 0: b--;
case 1: a--;
case 2: a--;
b--;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是______。
( D )
10、以下叙述中正确的是________。
三、循环结构 (共10题,每题1分,共计10分)
( D )
1、在下列选项中,没有构成死循环的程序段是________。
( C )
2、运行下面程序时,若从键盘输入数据为 "123" , 则输出结果是 _________.
#include "stdio.h"
void main()
{
int num,i,j,k,place;
scanf("%d",&num);
if (num>99) place=3;
else if(num>9) place=2;
else place=1;
i=num/100;
j=(num-i*100)/10;
k=(num-i*100-j*10);
switch (place)
{
case 3: printf("%d%d%d\n",k,j,i);
break;
case 2: printf("%d%d\n",k,j);
break;
case 1: printf("%d\n",k);
}
}
( A )
3、有以下程序
#include <stdio.h>
main()
{
int a=7;
while(a--);
pfintf("%d\n",a);
}
程序运行后的输出结果是________。
( D )
4、有以下程序:
#include<stdio.h>
main()
{
int i=0,a=0;
while(i<20)
{
for(;;)
{
if((i%5)==0)break;
else i--;
}
i+=13,a+=i;
}
printf("%d\n",a);
}
程序的输出结果是________。
( B )
5、有以下程序
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
程序执行后的输出结果是________。
( D )
6、有以下程序段int n=0,p;
do
{
scanf("%d",&p);
n++;
}
while(p!=12345&&n<3);
此处do-while循环的结束条件是______。
( C )
7、以下for语句构成的循环执行了______次。
#include <stdio.h>
#define N 2
#define M N+1
#define NUM (M+1)*M/2
main()
{
int i,n=0;
for(i=1;i<=NUM;i++)
{
N++;
printf("%d",n);
}
printf("\n");
}
( B )
8、设有以下程序段: int k=0; while(k=1) k--; 则以下叙述中正确的是________。
( A )
9、若变量已正确定义,以下while循环正常结束时,累加到pi的最后一项item的值满足________。
( D )
10、以下程序段的输出结果为()。
char c[]="abc";
int i=0;
do ;while(c[i++]!='\0');printf("%d",i-1);
四、数组/指针数组 (共10题,每题1分,共计10分)
( C )
1、下列描述中不正确的是________。
( C )
2、设有数组定义:char array[]="student"; 则数组所占的存贮空间为________。
( B )
3、以下数组定义中错误的是________。
( D )
4、有以下程序
#include <stdio.h>
void fun(int *a, int n)/*fun函数的功能是将a所指数组元数从大到小排序*/
{
int t,i,j;
for(i=o;i<n-1;j++) for(j=j+1;j<n;j++) if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
main()
{
int c[10]={1,2,3,4,5,6,7,8,9,0} ,i;
fun(c+4,6);
for(i=0;i<10,i++) printf("%d,",c[i]);
}
程序的运行结果是________。
( B )
5、若有定义:int w[3][5]; 则以下不能正确表示该数组元素的表达式是________。
( D )
6、下列描述中,正确的一条是______。
( A )
7、二维数组a[8][9]按行优先顺序存储,若数组元素a[2][3]的存储地址为1087,a[4][7]的存储地址为1153,则数组元素a[6][7]的存储地址为 ( )
( C )
8、下面程序段的运行结果是 char a[ ]="lanuage",*p; p=a; while(*p!='u') printf("%c",*p-32); p++;
( C )
9、下列字符数组长度为5的是________。
( B )
10、对长度为 8 的数组进行快速排序,最多需要的比较次数为________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( C )
1、以下不能将s所指字符串正确复制到t所指存储空间的是________。
( D )
2、在c语言中,以 作为字符串结束标志
( B )
3、字符串 "\\\"abc\"\\" 的长度是______。
( B )
4、下列选项中,值为1的表达式是________。
( D )
5、有以下程序:
#include<string.h>
main()
{
char *p="abcde\0ghjik\0";
printf("%d\n",strlen(p) );
}
程序运行后的输出结果是________。
( A )
6、设有定义:char*c; 以下选项中能够使字符型指针c正确指向一个字符串的是________。
( C )
7、设 char *s="\ta\017bc"; 则指针变量s指向的字符串所占的字节数 是________。
( D )
8、在宏定义#define PI 3.14159中,用宏名代替一个________。
( D )
9、若有char s1[]="abc",s2[20],*t=s2;gets(t);则下列语句中能够实现当字符串 s1 大于字符串 s2 时,输出 s2 的语句是()。
( A )
10、设有以下语句, 若 0
六、函数/函数指针 (共10题,每题1分,共计10分)
( D )
1、设函数fun的定义形式为________。
void fun(char ch, float x )
{
…
}
则以下对函数fun的调用语句中,正确的是________。
( D )
2、若有以下函数首部: int fun(double x[10],int *n) 则下面针对此函数的函数声明语句中正确的是________。
( A )
3、若有下面的函数调用: fun(a+b,3,max(n-1,b)) 则fun的实参个数是________。
( A )
4、下列程序的运行结果是________。
#include<stdio.h>
void sub(int*s,int*y)
{
static int m=4: *y=s[m];
m--;
}
void main()
{
int a[]={1,2,3,4,5},k,x;
printf("\n");
for(k=0;k<=4;k++)
{
sub(a,&x);
printf("%d,",x);
}
}
( A )
5、下面程序的输出结果是________。
# 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 )
6、下列程序的输出结果是
#include "stdio.h"
#define N 3
#define M 3
void fun(int a[M][N]) {
printf("%d\n",*(a[1]+2));
}
main()
{
int a[M][N];
int i,j;
for(i=0;i<M;i++) for(j=0;j<N;j++) a[i][j]=i+j-(i-j);
fun(a);
}
( B )
7、以下程序中函数f的功能是:当flag为1时,进行由小到大排序;
当flag为0时,进行由大到小排序。
void f (int b[],int n,int flag)
{
int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(flag?b[i]>b[j]:b[i]<b[j])
{
t=b[i];
b[i]=b[j];
b[j]=t;
}
}
main()
{
int a[10]={5,4,3,2,1,6,7,8,9,10}, i;
f(&a[2],5,0);
f(a,5,1);
for(i=0;i<10;i++) printf("%d,",a[i]);
}
程序运行后的输出结果是______。
( A )
8、下面选项中表示主函数的是?
( A )
9、关于函数参数,说法正确的是________。
( B )
10、调用函数f(27)的输出结果是________。
void f(int n)
{
if(n<5) printf("%d", n);
else
{
printf("%d", n%5);
f(n/5);
}
}
七、指针 (共10题,每题1分,共计10分)
( C )
1、下列能正确进行字符串赋值的是________。
( C )
2、以下不能对二维数组a进行正确初始化的语句是________。
( A )
3、设有定义:int n1=0,n2,*p=&n2,*q=&n1; ,以下赋值语句中与n2=n1; 语句等价的是________。
( B )
4、下面程序的输出结果是______。
main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;
printf("%d\n",p[3]);
}
( C )
5、若有定义语句:int m[ ]= {5,4,3,2,1},i=4; 则下面对m数组元素的引用中错误的是______。
( A )
6、有说明语句int a[4][5]; 则a[2]+3表示__。
( C )
7、在c语言中,调用函数除函数名外,还必须有________。
( C )
8、以下叙述中不正确的是________。
( D )
9、若二维数组a 有m 列,则计算任一元素a[i][j] 在数组中位臵的公式为(假设a[0][0] 位于数组的第一个位臵上) ________。
( D )
10、一个c语言程序是由____构成。
八、结构体 (共10题,每题1分,共计10分)
( D )
1、下列选项中属于c语言构造类型的是________。
( C )
2、以下对结构体类型变量的定义中,不正确的是________。
( A )
3、设有以下语句
typedef struct s
{
int g;
char h;
}
t;
则下面叙述中正确的是________。
( C )
4、设有如下说明
typedef struct st
{
long a;
int b;
char c[2];
}
new;
则下面叙述中正确的是______。
( B )
5、有以下程序:
struct stu
{
char num[10];
float score[3];
};
main()
{
struct stu s[3]={{"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}},*p=s;
int i;
float sum=0;
for(i=0;i<3;i++ ){
sum=sum+p->score[i];
}
printf("%6.2f\n",sum);
}
程序运行后的输出结果是________。
( A )
6、有以下程序
struct stu
{
char num[10];
float score[3];
}
;
main( )
{
struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p;
int i;
float sum=0;
p=s+1;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%.3f\n",sum);
}
程序运行后的输出结果是___________。
( A )
7、以下叙述中正确的是________。
( A )
8、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若要使p指向data中的a域,正确的赋值语句是________。
( A )
9、定义共用体的关键字是________。
( A )
10、结构体类型的定义允许嵌套是指()。
九、程序题 (共10题,每题1分,共计10分)
( C )
1、下面程序段的输出结果是________。 int i=32770:printf("%d\n",i);
( D )
2、有以下程序:
main()
{
int k=-3: if(k<=0)printf("****\n") else printf("&&&&\n");
}
程序的输出结果是________。
( B )
3、下列程序的运行结果是________。
#define ADD(x)X+X
main()
{
int m=1,n=2,k=3: int s=ADD(m+n)*k;
printf("s=%d",s):
}
( D )
4、有以下程序,其中k的初值为八进制数:
main()
{
int k=011;
printf{"%d|n",k++} ;
}
程序运行后的输出结果是________。
( C )
5、以下程序的输出结果是________。
#define f(x) x*x
main()
{
int a=6,b=2,c;
c=f(a)/f(b);
printf("%d\n",c);
}
( A )
6、已知字母"a"的ascii码为十进制的65,下面程序输出正确的是:
main()
{
char ch1, ch2;
ch1='a'+'5'-'3';
ch2='a'+'6'-'3';
printf("%d, %c\n", ch1, ch2);
}
( D )
7、以下程序的输出结果是 __________.
#include <stdio.h>
void fun()
{
static int a=0;
a+=2;
printf("%d",a);
}
void main()
{
int cc;
for(cc=1;cc<4;cc++) fun( );
printf("\n");
}
( B )
8、以下程序的输出结果是______。
#include <stdio.h>
#define FUDGE(y) 2.84+y
#define PR(a) printf("%d",(int)(a) )
#define PRINT1(a) PR(a); putchar('\n')
main()
{
int x=2;
PRINT1(FUDGE(5)*x);
}
( D )
9、有以下程序
main()
{
unsigned chara,b,c;
a=0x3;
b=a|0x8;
c=b<<1;
printf("%d%d\n",b,c);
}
程序运行后的输出结果是______。
( C )
10、下面程序的输出结果是________。
main( )
{
extern int m;
m-=2;
f( );
printf("%d\n",m);
}
int m=7;
f( )
{
printf("%d&",m*m);
m+=m;
}
相关标签:
- C语言
- 宁波工程学院
- 样卷