山东工商学院2023年C语言程序设计相关题目
本试卷为山东工商学院2023年C语言程序设计相关题目,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言程序设计相关题目
一、理论基础 (共20题,每题1分,共计10分)
( A )
1、在c语言中,存储一个字符型、整型、双精度实型变量所需的字节数是________。
( A )
2、若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是________。
( D )
3、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是________。
( C )
4、以下 是不正确的转义字符。
( B )
5、若需要利用形参直接访问实参,则应把形参变量说明为( )参数。
( D )
6、下列选项不是c关键字的是________。
( C )
7、以下定义语句中正确的是________。
( B )
8、现代计算机中采用二进制数制是因为二进制数的优点是______。
( A )
9、下列四个不同数制表示的数中,数值最大的是________。
( A )
10、表达式0x13^0x17的值是________。
( B )
11、设有定义:long x= -123456l; 则以下能够正确输出变量x值的语句是________。
( A )
12、以下不正确的定义语句是________。
( A )
13、设有说明语句:char a='\123'; 则变量a______。
( A )
14、以下选项中不能作为c语言合法常量的是______。
( C )
15、以下名字,不能作为c语言标识符的是________。
( B )
16、设char ch='z'; 则表达式"ch=(ch>='a' &&ch<='z')?ch-32:ch"的值是________。
( B )
17、无符号二进制数后加上一个0,形成的数是原来的几倍?
( C )
18、下列程序段的输出结果为________。 int x=3,y=2; printf("%d",(x-=y,x*=y+8/5));
( D )
19、以下程序段中,变量 c 的二进制值是________ char a=2,b=4,c; c=a+b<<2;
( D )
20、若int a=3, 则执行完表达式a-=a+=a*a 后,a 的值是________。
二、控制结构 (共10题,每题1分,共计10分)
( D )
1、能正确表示a和b同时为正或同时为负的逻辑表达式是________。
( C )
2、设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d)y=0; else y=1; 该语句所表示的含义是________。
( B )
3、c语言对嵌套if语句的规定是:else总是与( ) 。
( C )
4、有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是________。
( C )
5、执行以下程序段后,w的值为________。 int w='a',x=14,y=15; w=((x||y)&&(w<'a'));
( A )
6、若x和y是程序中的两个整型变量,则下列if语句中正确的是________。
( A )
7、有以下程序:
main()
{
int a=3,b=4,c=5,d=2;
if(a>b) if(b>c) printf("%d",d+++ 1);
else printf("%d",++d+1);
printf("%d\n",d);
}
程序运行后的输出结果是 ______。
( B )
8、以下叙述中正确的是________。
( C )
9、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
( A )
10、c语言的if语句嵌套时,if与else的配对关系是________。
三、循环结构 (共10题,每题1分,共计10分)
( D )
1、若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是________。
( B )
2、下列for循环语句的执行次数是________。 for(int x=0,y=0;(y!=0)&&(x<4);x++)
( D )
3、下面关于break语句的描述中,不正确的是________。
( C )
4、有以下程序:
main() {
int k=4,n=0;
for(; n<k;) {
n++;
if(n%3!=o) continue;
k--;
}
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是________。
( B )
5、有以下程序
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
程序执行后的输出结果是________。
( A )
6、以下选项中哪些描述是不正确的?
( B )
7、有以下程序
main( )
{
int c=5,x;
scanf("%d",&x);
switch(x+1)
{
case 6: c++;
case 8: ++c;
break;
default:c+=3;
}
printf("%d",c);
}
程序运行时,从键盘输入: 5<回车>,程序执行后的输出结果是________。
( B )
8、有以下程序
main()
{
int i, j;
for(i=1;i<4;i++)
{
for(j=i;j<4;j++) printf("%d*%d=%d ",i,j,i*j);
printf("\n");
}
}
程序运行后的输出结果是______。
( C )
9、以下程序的输出结果是 _______ 。
main( )
{
int i=0,s=0;
for (;;)
{
if (i==6) break;
i++;
s+=i;
}
printf("%d\n",s);
}
( C )
10、判断关键字* ▁▁▁▁▁ 不是关键字。
四、数组/指针数组 (共10题,每题1分,共计10分)
( B )
1、若二维数组a有m列,则在a[i][j]前的元素个数为( )。
( C )
2、设有定义:"double x[10],*p=x; ",以下能给数组x下标为6的元素读人数据的正确语句是________。
( C )
3、对二维数组的正确定义是________。
( D )
4、设char str[100]; int i=5; 则引用数组元素的错误形式的是________。
( C )
5、以下定义:int(*p)[4]中,标识符p是________。
( C )
6、有定义语句:int*p[4]; 以下选项中与此语句等价的是________。
( B )
7、有以下程序:
main()
{
int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},ij;
for(i=0;i<4;i++)
{
for(j=0;j<=i;j++) printf("%4c",’);
for(j=______;j<4;j++) printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是 ______ 。
( D )
8、c语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为________。
( C )
9、设有数据定义语句"int a[200]; ",下列数组元素引用中下标不越界的是________。
( D )
10、若有定义:int b[5]; 则以下对b 数组元素的正确引用是________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( C )
1、下列能正确进行字符串赋值的是________。
( A )
2、以下不能正确进行字符串赋初值的语句是________。
( C )
3、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
( C )
4、在下列各项中,运算级别最低的为________。
( B )
5、设有两个字符串p和q,其中q是p的子串,把q在p中首次出现的位置作为子串q在p中位置的算法称为 (43) 。
( D )
6、以下正确的字符串常量是________。
( D )
7、下列字符常量的写法中,正确的是________。
( B )
8、下面选项中合法的字符常量是________。
( C )
9、判断两个字符串是否相等,正确的表达方式是
( A )
10、从键盘上输入某字符串时,不可使用的函数是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( C )
1、有一函数, ,以下程序段中不能根据x值正确计算出y值的是________。
( D )
2、若调用一个函数,且此函数中没有return语句,则正确的说法是________。
( A )
3、是构成c语言程序的基本单位。
( D )
4、在函数声明中,下面哪项是不必要的________。
( A )
5、关于函数的返回值,正确的是________。
( C )
6、c语言中,可用于说明函数的是________。
( A )
7、以下正确的函数头定义形式是________。
( D )
8、若有定义:char*x="abcdefghi"; 以下选项中正确运用了strcpy函数的是______。
( B )
9、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 ________。
( A )
10、C语言程序中,当调用函数时()。
七、指针 (共10题,每题1分,共计10分)
( B )
1、若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是________。
( C )
2、c语言规定:main函数的位置________。
( B )
3、若有以下说明和定义
fun ( int *c )
{
}
void main ()
{
int ( *a )() =fun , *b (), w[10] , c ;
…
}
在必要的赋值之后,对 fun 函数的正确调用语句是______。
( A )
4、以下叙述中正确的是________。
( C )
5、在c语言中引用数组元素时,其数组下标的数据类型只能是________。
( C )
6、设有定义语句int a []= { 66,77,99 },则下列对此语句的叙述中错误的是________。
( B )
7、关于c语言中print()函数与scanf()函数,下列描述中正确的是________。
( C )
8、请读程序片段(字符串内没有空格字符):printf("%d\n",strlen("ats\n012\1\\") );
上面程序片段的输出结果是______。
( A )
9、以下答案中不是c语言最基本数据类型的是________。
( B )
10、关于数组和指针,以下说法错误的是________。
八、结构体 (共10题,每题1分,共计10分)
( A )
1、有以下程序
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);
}
程序运行后的输出结果是________。
( A )
2、下列描述说明正确的是________。
( D )
3、在16位pc机上使用c语言,若有如下定义
struct data {
int i;
char ch;
double f;
} b;
则结构变量b占用内存的字节数是________。
( C )
4、设有以下语句:
typedef struct tt { char c; int a[4]; } cin; 则下面叙述中正确的是________。
( C )
5、设有如下说明
typedef struct st
{
long a;
int b;
char c[2];
}
new;
则下面叙述中正确的是______。
( B )
6、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是 struct node char data; struct node*next; a,b,*p=&a,*q=&b;
( A )
7、有以下程序
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);
}
程序运行后的输出结果是___________。
( D )
8、表达式 *((int *)(p+1)+2)的值时_______.
static struct
{
int x, y[3];
}
a[3] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}, *p;
p = a+1;
( B )
9、c语言中,定义结构体的保留字是________。
( C )
10、定义结构体的关键字是________。
九、程序题 (共10题,每题1分,共计10分)
( A )
1、有以下程序
main()
{
int a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
输出结果是________。
( B )
2、以下程序运行后,输出结果是________。
#define PT 5.5
#define S(x) PT*x*X
main()
{
int a=1,b=2:;
printf("%4.1f\n",s(a+b));
}
( C )
3、以下程序
#include <stdio.h>
#define SUB(a) (a)-(a)
main()
{
int a=2,b=3,c=5,d;
d=SUB(a+b)*c;
printf("%d\n",d);
}
程序运行后的结果是________。
( B )
4、以下程序的运行结果是:
main()
{
int w=5 ;
fun(w) ;
printf( "\ n " ) ;
}
fun(int k)
{
if(k>o) fun(k-1) ;
printf( " %d ", k) ;
}
( D )
5、下面程序段的运行结果是 __________.
int x=0,y=0;
while (x<15)
y++,x+=++y;
printf("%d,%d",y,x);
( C )
6、下列程序执行后输出的结果是 __________.
#include<stdio.h>
int f(int a)
{
int b=0;
static c=3;
a=c++,b++;
return(a);
}
void main()
{
int a=2,i,k;
for(i=0;i<3;i++) k=f(a++);
printf("%d\n",k);
}
( A )
7、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{
int n,k;
float score,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{
for(k=1;k<=4;k++)
{
scanf("%f",&score);
sum+=score;
}
ave=sum/4.0;
printf("no%d:%f\n",n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确。这条语句是______。
( A )
8、若有以下程序段(n所赋的是八进制数)int m=32767,n=032767;
printf("%d,%o\n",m,n);
执行后输出结果是______。
( D )
9、下列程序的输出结果是________。
main()
{
int i,s=0;
for(i=1;i<10;i++)
if(!(i%2)&&!(i%3)) s+=i;
printf(”%d ”,s);
}
( C )
10、执行以下程序后的输出结果是________。
int w=3,z=7,x=10;
printf("%d",x>10?x+100:x-10);
printf("%d",w++||z++);
printf("%d",!w>z);
printf("%d",w&&z);
相关标签:
- C语言
- 山东工商学院
- 相关题目