青岛理工大学C语言程序设计题库
本试卷为青岛理工大学C语言程序设计题库,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言程序设计题库
一、单项选择题 (共20题,每题2分,共计40分)
( A )
1、要求通过while循环不断读人字符,当读入字母n时结束循环,若变量已正确定义,下列正确的程序段是________。
( D )
2、有以下程序
void fun(int*a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/
{
int t,i,j;
for(i=0;i<n一1;j++) for(j=i+1;j<n;j++) if(a[i]
}
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]);
printf("n"):
}
}
程序运行的结果是________。
( C )
3、在c语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是:________。
( D )
4、以下能正确定义数组并正确赋初值的语句是______。
( B )
5、以下叙述中 , 不正确的是 __________.
( D )
6、关于for(表达式1;表达式2;表达式3),叙述正确的是________。
( C )
7、设
struct data
{
int a;
float b;
} c,*p=&c;
,引用正确的是________。
( C )
8、有定义语句:int*p[4]; 以下选项中与此语句等价的是________。
( D )
9、有以下程序:
main( )
{
char a[ ]={‘a',‘b',‘c',‘d',‘e',‘f',‘g',‘h',‘\0'};
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d\n",i,j);
}
程序运行后的输出结果是________。
( B )
10、有以下程序
main()
{
char s[]={"aeiou"},*ps;
ps=s;
prinff("%c\n",*ps+4);
}
程序运行后的输出结果是________。
( B )
11、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若有p=&data;
则对data中成员a的引用正确的是________。
( A )
12、以下程序的输出结果是_______。
main()
{
char s[]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
}
( A )
13、以下答案中不是c语言最基本数据类型的是________。
( D )
14、已定义以下函数int fun( int *p)
{
return *p;
}
则fun函数返回值足
( D )
15、非法的字符常量是________。
( C )
16、若ch为char型变量,k为int型变量(已知字符a的ascii十进制代码为97), 则以下程序段的执行结果是________。 ch='a';
k=12;
printf("%x,%o,",ch,ch,k);
printf("k=%%d\n",k);
( D )
17、若int类型占两个字节,则以下语句输出为________。 int k=-1;
printf("%d,%u\n",k,k);
( A )
18、以下叙述正确的是________。
( D )
19、执行下列程序段后,m 的值是________. int w=2,x=3,y=4,z=5,m; m=(w
( A )
20、从键盘上输入某字符串时,不可使用的函数是()。
二、判断题 (共10题,每题2分,共计20分)
( T )
1、c语言中字符串的结束符是’\0’。 ( )
( T )
2、条件语句中,if的个数一定不小于else的个数,因为每个else的前面必须有一个if与之相对应。
( F )
3、c语言中不允许嵌套调用函数。
( T )
4、函数的实参传递到形参有两种方式:值传递和地址传递。
( F )
5、调用strcmp函数比较字符串大小时,通常较长的字符串会较大。
( T )
6、用指针变量可以指向一维数组,也可以指向多维数组。
( T )
7、函数的实参可以是常量,变量或表达式
( T )
8、静态外部变量只在本文件内可用.
( F )
9、在switch 语句中必须使用break 语句
( F )
10、for 语句只能用于循环次数已经确定的情况
三、填空题 (共5题,每题4分,共计20分)
1、现有两个c程序文件t18.c和myfun.c同在tc系统目录(文件夹)下,其中t18.c文件如下:
#include <stdio.h>
#include "myfun.c"
main()
{
fun();
printf("\n");
}
myfun.c文件如下:
void fun()
{
char s[80],c;
int n=0;
while((c=getchar())!=′\n′) s[n++]=c;
n--;
while(n>=0) printf("%c",s[n--]);
}
当编译连接通过后,运行程序t18时,输入thank!则输出结果是:________。
2、局部变量又称内部变量,是在函数( )定义的变量。
3、for (a=1,b=1;a<=100;a++)
{
if(b>=20) break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
程序的输出结果a的值为________ 。
4、c 语言规定,可执行程序的开始执行点是________。
5、定义一个指针p,它指向一个有6个整型元素的一维数组,定义语句为 ______。
四、程序分析题 (共4题,每题5分,共计20分)
1、有以下程序
#include <stdio.h>
main ()
{
int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for (i=1;i<3;i++) for(j=i;j<3;j++) printtf("%d",a[i][j]);
printf("\n");
}
程序运行后的输出结果是________。
2、下列程序段的运行结果是_____。 char s1[20]="abcdef", s2[5]="abc"; strcpy(s1,s2); printf("%c", s1[5]);
3、已知t=5,则表达式"t-=t+=3"的值是______。
4、以下程序功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。
#include <stdio.h>
main()
{
int a[10],*p,*s;
for(p=a;p-a<10;p++) scanf("%d",p);
for(p=a,s=a;p-a<10;p++) if(*p>*s) s=________;
printf("index=%d\n",s-a);
}
五、编程题 (共3题,每题0分,共计50分)
1、输入5位同学的一组信息,包括学号、姓名、数学成绩、计算机成绩,求得每位同学的平均分和总分,然后按照总分从高到低排序。
2、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
3、任意输入两行字符串,把第二行字符串连接到第一行字符串末尾(不用strcat函数)。
相关标签:
- C语言
- 青岛理工大学
- 题库