盐城师范学院历年C语言程序设计复习题
本试卷为盐城师范学院历年C语言程序设计复习题,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言程序设计复习题
一、理论基础 (共20题,每题1分,共计10分)
( D )
1、若变量已正确定义为int型,要给a、b、c输人数据,正确的输入语句是________。
( A )
2、在c语言中,存储一个字符型、整型、单精度实型变量所需的空间是________。型、单精度实型变量所需的空间是________。
( A )
3、a,b均为整数,且b!=0,则表达式a/b*b+a%b的值是________。
( B )
4、在64位计算机中,一个字长所占字节数为________。
( D )
5、以下叙述中不正确的是________。
( D )
6、设int a=0; 错误的语句是________。
( D )
7、与二进制数101.01011等值的十六进制数是________。
( C )
8、下列各进制的整数中,______表示的值最大。
( C )
9、在标准ascii码表中,已知英文字母a的十进制码值是65,英文字母a的十进制码值是________。
( B )
10、结构化程序设计主要强调的是________。
( C )
11、结构化程序设计主要强调程序的()
( B )
12、已知字母a的ascii代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是______。
( D )
13、下面( )表达式的值为4。
( C )
14、若ch为char型变量,k为int型变量(已知字符a的ascii十进制代码为97), 则以下程序段的执行结果是________。 ch='a';
k=12;
printf("%x,%o,",ch,ch,k);
printf("k=%%d\n",k);
( C )
15、若有定义:char *p1,*p2,*p3,*p4,ch; 则不能正确赋值的程序语句为________。
( B )
16、下列表达式中,可作为c合法表达式的是________。
( B )
17、下列运算符中优先级最高的是________。
( B )
18、表达式10!=12的值是________。
( D )
19、在c 语言中,退格符是________。
( D )
20、下列( )表达式的值为真,其中 a=5;b=8;c=10;d=0
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是________。
( C )
2、设a、b、e、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是________。
( C )
3、运行以下程序后,如果从键盘上输入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);
}
( C )
4、switch语句中表达式(expression)的值不允许用的类型是________。
( A )
5、在c程序中,判逻辑值时,用"非0"表示逻辑值"真",又用"0"表示逻辑值"假"。在求逻辑值时,逻辑真和逻辑假可分别表示为
( A )
6、有以下程序
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 )
7、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int a=4,b=3,c=2,d=1;
printf("%d",a<b?a:d<c?d:b);
}
( C )
8、若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是________。
( B )
9、c语言的switch语句中case后____
( A )
10、c语言的if语句中,用作判断的表达式为____
三、循环结构 (共10题,每题1分,共计10分)
( D )
1、下面for语句的循环次数为( )。 for(x=1,y=0;(y!=19)&&(x<6);x++);
( B )
2、若变量已正确定义,有以下程序段 i—o;
do printf("%d,",i);
while(i++);
printf("%d",i) 其输出结果是________。
( C )
3、下面程序的运行结果是________。
main( )
{
int m=7,n=5,i=1;
do
{
if (i%m==0);
if (i%n==0)
{
printf("%d\n",i);
break;
}
i++;
}
while(i!=0);
}
( A )
4、有以下程序
#include <stdio.h>
main()
{
int c;
while ((c=getchar())!='\n')
{
switch(c-'2')
{
case 0: case 1: putchar(c+4);
case 2: putchar(c+4);
break;
case 3: putchar(c+3);
default: putchar(c+2);
break;
}
}
printf("\n");
}
从第一列开始输入以下数据,<cr>代表一个回车符。 2473<cr> 程序的输出结果是________。
( A )
5、以下for语句中不是死循环的是________。
( D )
6、程序设计语言中________。
( A )
7、若变量已正确定义,对以下while循环结束条件的准确描述是________。
flag = 1;
denominator = 1;
item = 1.0;
pi = 0;
while(fabs(item) >= 0.0001)
{
item = flag * 1.0 / denominator;
pi = pi + item;
flag = -flag;
denominator = denominator + 2;
}
( B )
8、关于循环体while的说法下列正确的是________。
( B )
9、以下叙述中正确的是________。
( A )
10、执行以下循环语句时,下列说法正确的是________。x = -1;
do
{
x = x * x;
}
while (x == 0);
四、数组/指针数组 (共10题,每题1分,共计10分)
( B )
1、以下能正确定义二维数组的是________。
( A )
2、在c语言中对于实型数组,其每个数组元素的类型是________。
( C )
3、以下对二维数组a的正确说明是________。
( B )
4、当调用函数时,实参是一个数组名,则向函数传送的是 _______ 。
( D )
5、设有以下定义: int a[3][3]= { 1,2,3,4,5,6,7,8,9 }; int(*ptr)[3]=a; 则下列能正确表示数组元素a[1][2]的表达式是______。
( A )
6、下面关于数组的初始化正确的是________。
( A )
7、设int a[10],*p=a; 数组元素a[4]的正确引用是________。
( D )
8、已有定义:int i,a[10],*p; 则合法的赋值语句是________。
( A )
9、下面程序的运行结果是
#include<stdio.h>
main()
{
static char a[]="languagef" ,b[]="programe";
char *p1,*p2;
int k;
p1=a;
p2=b;
for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
( C )
10、设有如下定义:char*aa[2]="abcd","abcd",则以下说法中正确的是________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s; 则以下选项中正确的是________。
( C )
2、下面各语句行中,能正确进行字符串赋值操作的语句是______。
( D )
3、下列字符串中,正确的c标识符是________。
( C )
4、null是指 ________。
( B )
5、下列选项中,值为1的表达式是________。
( B )
6、设有以下程序段: int a[5]=0,*p,*q; p=a; q=a; 则下列选项中,合法的运算是________。
( C )
7、下列表达式中,类型可以作为int型的是________。
( C )
8、下面各语句行中,能正确进行给字符串赋值操作的语句行是______。
( D )
9、宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个______
( B )
10、设 p1 和 p2 是指向同一个字符串的指针变量,c 为字符变量,则以下不能正确执行的赋值语句是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( D )
1、设函数fun的定义形式为________。
void fun(char ch, float x )
{
…
}
则以下对函数fun的调用语句中,正确的是________。
( C )
2、若有以下程序
#include <stdio.h>
void f(int n);
main()
{
void f(int n);
f(5);
}
void f(int n)
{
printf("%d\n",n);
}
则以下叙述中不正确的是________。
( C )
3、以下正确的说法是________。
( C )
4、计算斐波那契数列第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被调用的次数是________。
( B )
5、下列关于模板形参的描述中,错误的是________。
( D )
6、有以下函数:fun(char *a,char *b)
{
while((*a!='\0')&&(*b!='\0')&&(*a==*b))
{
a++;
b++;
}
return(*a-*b);
}
该函数的功能是______。
( C )
7、设有语句:printf("%2d\n",2010);
,则以下叙述正确的是________。
( C )
8、以下叙述中正确的是________。
( D )
9、函数的形式参数隐含的存储类型说明是________。
( A )
10、c 语言程序的三种基本结构是顺序结构、选择结构和______结构.
七、指针 (共10题,每题1分,共计10分)
( C )
1、定义如下变量和数组: 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]);的输出结果是________。
( A )
2、以下不能正确计算代数式 值的c语言表达式是________。
( C )
3、设有说明 int (*ptr)[m]; 其中 ptr 是______。
( C )
4、若有以下调用语句,则不正确的fun函数的首部是________。
main() {
…
int a[50],n;
…
fun(n, &a[9]);
…
}
( D )
5、对两个数组a和b进行如下初始化: char a[]="abcdef"; char b[]= {'a','b','c','d','e','f' } 则以下叙述正确的是________。
( B )
6、定义如下变量和数组: int k; int a[3][3]= {9,8,7,6,5,4,3,2,1}; 则下面语句的输出结果是________。
for(k=0;k<3;k++) printf("%d",a[k][k]);
( A )
7、以下程序的运行结果是________。
#include <stdio.h>
main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p=a+5,*q=null;
*q=8(p+5);
printf("%d %d\n", *p,*q);
}
( B )
8、有如下程序段int *p,a=5,b=1; p=&a; a=*p+b; 执行该程序段后,a的值为______。
( C )
9、以下关于局部变量和全局变量的叙述错误的是________。
( C )
10、在c语言的函数中,下列正确的说法是________。
八、结构体 (共10题,每题1分,共计10分)
( B )
1、已知有如下结构体:
struct sk
{
int a;
float b;
}
data,*p;
若有p = &data,则对data的成员a引用正确的是________。
( B )
2、下列程序的输出结果是________。
main()
{
struct st
{
int y,x,z;
}
;
union
{
long i;
int j;
char k;
}
un;
printf("%d,%d\n",sizeof(struct st),sizeof(un))
}
( C )
3、设有如下枚举类型定义: enum language
{
basic=3 , assembly , ada=100 , cobol , fortran
};
枚举量 fortran 的值为 。
( A )
4、对以下定义的表述中,正确的是________
struct node
{
int num;
char name[10];
}
stud;
( A )
5、有以下程序
struct s
{
int n;
int a[20];
}
;
void f(int *a, int n)
{
int i;
for(i=0;i<n-1;i++) a[i]+=i;
}
main()
{
int i;
struct s s={10,
{
2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
for(i=0;i<s.n;i++) printf("%d,",s.a[i]);
}
程序运行后的输出结果是______。
( C )
6、以下scanf函数调用语句中不正确的是__。
struct pupil
{
char name[20];
int age;
int sex;
}
pup[5], *p=pup;
( D )
7、有如下定义: struct student
{
char name[10];
int age;
char gender;
}
std[3], *p=std;
则以下各输入语句中错误的是________。
( C )
8、下列关于共用体类型变量的描述中,正确的是________。
( C )
9、下面哪个不是关键字?
( A )
10、定义共用体的关键字是________。
九、程序题 (共10题,每题1分,共计10分)
( A )
1、下述程序的运行结果是________。
main()
{
char*s1="abdui";
char*s2="abdug";
int t;
t=strcmp(s1,s2);
printf("%d",t);
}
( D )
2、下列程序的输出结果是________。
char *p1="abcd", *p2="abcd", str[50]="xyz"; strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
( B )
3、有以下程序:
main()
{
int x=4,y;
do
{
y=x;
if(!y)printf("x");
else printf("y"); x--;
}
while(x);
}
程序的输出结果是________。
( C )
4、要输出下面的图形,请完善程序。
#include <stdio.h>
main( )
{
int i,j,k;
for(i=1;i<=6;i++)
{
for(j=1;j<=20-2*i;j++) printf(" ");
for(k=1;________;k++) printf("%2d",i);
________
}
}
( D )
5、有以下程序
#includes <stdio.h>
main()
{
int a=1,b=2;
for(;a<8;a++)
{
b+=a;
a+=2;
}
printf ("%d,%d\n",a,b);
}
程序运行后的输出结果是________。
( D )
6、下列程序的执行结果是 ___________.
#include <stdio.h>
void main( )
{
int x=0,y=1,z=0;
if (x=z=y) x=3;
printf("%d,%d\n",x,z);
}
( D )
7、若有宏定义如下:
#define X 5
#define Y X+1
#define Z Y*X/2
以下程序段的输出结果是______。
int a;
a=Y;
printf("%d\n",Z);
printf("%d\n",--a);
( A )
8、以下程序结果为:______。
void add( )
{
static int x=3;
x++;
printf("%d",x);
}
main( )
{
int i;
for(i=0;i<3;i++)add( );
}
( C )
9、有以下程序
main()
{
char *s[]={"one","two","three"},*p;
p=s[1];
printf("%c,%s\n",*(p+1),s[0]);
}
执行后输出结果是______。
( A )
10、当执行下面程序且输入:abc时,输出的结果是______。
#include <stdio.h>
#include <string.h>
main( )
{
char ss[10]="12345";
strcat(ss,"6789");
gets(ss);
printf("%s\n",ss);
}
相关标签:
- C语言
- 盐城师范学院
- 复习题