上海电机学院C语言程序设计题目
本试卷为上海电机学院C语言程序设计题目,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言程序设计题目
一、理论基础 (共20题,每题1分,共计10分)
( C )
1、下面的变量说明中________是正确的。
( D )
2、下列语句中符合c语言语法的赋值语句是________。
( D )
3、设变量已正确定义,则以下能正确计算f = n!的程序段是________。
( B )
4、以下选项中,合法的一组c语言数值常量是________。
( C )
5、执行下列语句后,i和n的值为 ( ) int i=10; int n=i++%5;
( A )
6、已知year为整型变量,不能使表达式(year%4==0&&year%100!=o)||year%400==0的值为"真"的数据是______。
( C )
7、字面常量42、4.2、42l的数据类型分别是________。
( D )
8、下面赋值语句中正确的是________。
( C )
9、给一个short类型变量赋值的范围是________。
( C )
10、下面表达式为假的是________。
( B )
11、下列叙述中正确的是________。
( C )
12、下列字符常量的写法中,错误的是________。
( C )
13、以下关于链式存储结构的叙述中哪一条是错误的?
( C )
14、若给定条件表达式(m)?(a++):(a--)则下列选项中和表达式m等价的是________。
( B )
15、设a=5、b=6、c=10、d=8、m=2、n=5,执行(m=a>b)&&(n=c>d)后n的值为______。
( C )
16、已知int x=10,y=20,z=30; 以下语句:if(x<y) z=x; x=y; y=z; 执行后x,y,z的值是________。
( B )
17、若有定义:double a=22; int i=0,k=18; 则不符合c语言规定的赋值语句是________。
( C )
18、以下选项中合法的用户标识符是________。
( B )
19、c 语言中局部变量的缺省存储类别是________。
( C )
20、以下的选择中,正确的赋值语句是()。
二、控制结构 (共10题,每题1分,共计10分)
( B )
1、下列表达式为关系表达式的为_________。(其中a为一整型变量)
( A )
2、在c程序中,判断逻辑值时,分别用( )表示逻辑值"真"、"假"。
( A )
3、if语句的基本形式是:if(表达式)语句,以下关于"表达式"值的叙述中正确的是______。
( C )
4、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int a=1,b=3;
if((++a<0)&&!(b--<=0)) printf("%d,%d\n",a,b);
else printf("%d,%d\n",b,a);
}
( A )
5、选择出合法的if语句(设int x,a,b,c;)________。
( B )
6、c语言中,关系表达式和逻辑表达式的值是________。
( D )
7、以下叙述中正确的是________。
( C )
8、以下叙述中正确的是________。
( B )
9、假定所有变量均已正确定义,下列程序段运行后x的值是________。 k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3;
( C )
10、结构化程序设计所规定的三种基本控制结构是()。
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、以下正确的描述是________.
( C )
2、在c语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是:________。
( B )
3、定义如下变量: int n=10; 则下列循环的输出结果是________。 while(n>7)
{
n--;
printf("%d\n",n);
}
( A )
4、下列关于宏操作的叙述错误的是________。
( C )
5、以下关于结构化程序的说法中,正确的是________。
( B )
6、有如下程序
#define N 2
#define M N+1
#define NUM 2*M+1
main()
{
int i;
for(i=1;i<=NUM;i++) printf("%d\n"i)
}
该程序中的for循环执行的次数是______。
( C )
7、有以下程序
#include <stdio.h>
int main()
{
int m[][3]= { 1,4,7,2,5,8,3,6,9 };
int i,j,k=2;
for(i=0;i<3;i++) printf("%2d",m[k][i]);
}
执行后输出结果是________。
( A )
8、有以下程序
main()
{
int i=0,s=0;
do
{
if(i%2)
{
i++;
continue;
}
i++;
s+=i;
}
while(i<7);
printf("%d\n",s);
}
执行后输出的结果是______。
( A )
9、有以下程序:
main()
{
int k=5;
while(--k)printf(”%d”,k-=3);
printf(”n”);
}
执行后的输出结果是________。
( C )
10、下面程序段。x=3;
do
{
y=x--;
if(!y)
{
printf("*");
continue;
}
printf("#");
}
while(1<=x<=2);
四、数组/指针数组 (共10题,每题1分,共计10分)
( D )
1、若有定义:int c[4][5],(*cp)[5]; 和语句cp=c; ,则能正确引用c数组元素的是________。
( D )
2、下列说法正确的是________。
( B )
3、以下对二维数组a进行正确初始化的是________。
( D )
4、若已定义: int a[]= { 0,1,2,3,4,5,6,7,8,9 },*p=a,i; 其中0≤i≤9,则对a数组元素不正确的引用是________。
( A )
5、若定义static int a[2][2]={1,2,3,4 },则a数组的各数组元素分别为______。
( D )
6、下述程序的输出结果是________。
#include<stdio.h>
void main()
{
int a[5]={1,2,3,4,5};
int*p=a,**q=&p;
printf("%d",*(p++));
printf("%d",**q);
}
( B )
7、下面程序的输出结果是______。
main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;
printf("%d\n",p[3]);
}
( A )
8、以下选项中,不能正确赋值的是 ______。
( C )
9、以下二维数组c 的定义形式是________。
( C )
10、与实际参数为实型数组名相对应的形式参数不可以定义为________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( A )
1、下列字符串是标识符的是________。
( D )
2、以下选项中能表示合法常量的是________。
( C )
3、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是________。
( A )
4、下列合法的字符型常量是________。
( B )
5、有以下程序
#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);
}
程序运行后的输出结果是______。
( B )
6、字符串"xyz"在内存占用的字节数是______。
( C )
7、下列选项中,表示字符串末尾的结束标志是________。
( D )
8、按照c语言规定的用户标识符命名规则,不能出现在标识符中的是________。
( C )
9、下面正确的字符串常量是________。
( A )
10、以下正确的字符串常量是________。
六、函数/函数指针 (共10题,每题1分,共计10分)
( B )
1、下列叙述中不正确的是________。
( B )
2、以下正确的描述是________ 。
( D )
3、对下面程序段,描述正确的是________。 for(t=1;t<=100;t++)
{
scanf("%d",&x);
if (x<0) continue;
printf("%d\n",t);
}
( D )
4、在说明语句:int *f( ); 中,标识符f代表的是________。
( A )
5、在 c 语言中,当函数调用时 。
( B )
6、在函数调用过程中,如果函数funa调用了函数funb,函数funb又调用了函数funa,则 ________。
( B )
7、下面的描述中错误的是________。
( B )
8、若有以下说明和定义 fun(int*c)
{
...
}
main()
{
int(*a)()=fun,(*b)(),w[10],c;
}
在必要的赋值之后,对fun()函数的正确调用语句是______。
( B )
9、下列关于函数之间数据传递的叙述正确的是________。
( B )
10、在一个. C程序中()。
七、指针 (共10题,每题1分,共计10分)
( D )
1、设有如下定义:char *aa[2]={"abcd","abcd"};则以下说法中正确的是________。
( A )
2、以下关于return语句的叙述中不正确的是________。
( D )
3、若有以下函数调用语句:fun(m+n,x+y,f(m+n,z,(x,y))); 在此函数调用语句中实参的个数是________。
( D )
4、以下叙述不正确的是________。
( A )
5、c语言的基本数据类型包括________。
( A )
6、有以下程序
#include<string.h>
main()
{
char p[]={'a','b','c'},q[10]={'a','b','c'};
printf("%d%d\n",strlen(p),strlen(q));
}
以下叙述中正确的是________。
( A )
7、下述函数功能是_______。
int fun (char *x)
{
char *y = x;
while (*y++);
return y - s - 1;
}
( C )
8、下面函数定义形式正确的是________。
( D )
9、对于 if(表达式)语句,以下说法正确的是________。
( A )
10、下面选择中正确的赋值语句是(设char a[5],*p=a;)________。
八、结构体 (共10题,每题1分,共计10分)
( D )
1、有以下定义和语句
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 )
2、有以下定义和语句:
struct students {
int num;
char name[20];
char c;
struct {
int grade1;
int grade2;
} s;
};
struct students w,*pw;
*pw=w;
下列赋值语句不正确的是________。
( D )
3、若有下面的说明和定义,则sizeof(struct aa)的值是________。
struct aa {
int rl;
double r2;
float r3;
union uu {
char u1[5];
long u2[2];
} ua;
} mya;
( B )
4、已知函数的原形如下,其中结构体a为已经定义过的结构,且有下列变量定义 struct a*f(int t1,int*t2,struct a t3,struct a*t4) struct a p,*p1; int i; 则正确的函数调用语句为
( B )
5、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是________。
struct node
{
char data;
struct node *next;
}
a,b,*p=&a,*q=&b;
( A )
6、若有下面的说明和定义:
struct test
{
int m1;
char m2;
float m3;
union uu
{
char u1[5];
int u2[2];
}
ua;
}
myaa;
则sizeof(struct test)的值是________。
( B )
7、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若有p=&data;
则对data中成员a的引用正确的是________。
( B )
8、以下对枚举类型名的定义中正确的是________。
( C )
9、static struct
{
int a1;
float a2;
char a3;
}
a[10]={1,3.5,'a'};
说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存 储方式,其中被初始化的下标变量是________。
( D )
10、在说明一个结构体变量时系统分配给它的存储空间是________ 。
九、程序题 (共10题,每题1分,共计10分)
( C )
1、有以下程序:
main()
{
int a=1,b=3,c=5,*p;
int*p1=&a,*p2=&b,*p3=&c;
*p=*p1*(*p2);
}
执行后的输出结果是________。
( A )
2、以下程序的输出结果是
main()
{
char x=040;
printf("%0\n",x<<1);
}
( D )
3、运行下面程序后 , 输出是 ________.
#include <stdio.h>
void main( )
{
int k=-3;
if (k<=0) printf("****\n");
else printf("####\n")
}
( B )
4、下面程序的运行结果是 __________.
#include<stdio.h>
void main( )
{
int a=1,b=10;
do
{
b-=a;
a++;
}
while(b--<0);
printf("%d,%d\n",a,b);
}
( D )
5、有如下程序
int func(int a,int b)
{
return(a+b);
}
void main()
{
int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r);
}
该程序的输出结果是 ____________.
( D )
6、有以下程序:
#include <stdio.h>
main()
{
int x=1, y=0;
if(!x)y++;
else if(x==0) if(x)y+=2;
else y+=3;
printf("%d\n", y);
}
程序运行后的输出结果是______。
( C )
7、以下c程序正确的运行结果是________。
#include<stdio.h>
void main()
{
long y=-43456;
printf("y=%d\n",y);
printf("y=%-08ld\n",y);
printf("y=%08ld\n",y);
printf("y=%+8ld\n",y);
}
( C )
8、以下程序的输出结果是______。
main()
{
int i,x[3][3]={1,2,3,4,5,6,7,8,9,};
for(i=0;i<3;i++) printf("%d,",x[i][2-i]);
}
( D )
9、如下程序,输入错误的为:
void main()
{
int a;
int b;
scanf("%d%d",&a,&b);
printf("%d %d",a,b);
}
( C )
10、设有如下定义:int x=10, y=4,z;
4则语句:printf(''%d\n'', z=(x%y, x/y));
的输出结果是________。
相关标签:
- C语言
- 上海电机学院
- 题目