C语言程序设计题目及解答-12

2025-04-26

一、判断题 (20分)

1. 语句char *p = \的含义是将字符串赋给字符型指针变量p。

2. 若指针变量指向一维数组的第一个元素,将指针变量加整数3,即指针后移3个元素。3. b是一维数组名,数组元素b[1]还可写成*(b++)。

4. 对二维数组a来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的。 5. 在二维数组中,行指针是指向一维数组的指针变量.

6. 取地址运算符&与指针运算符*的优先级相同,结合方向为自右向左。 7. 两个字符串中的字符个数相同时才能进行字符串大小的比较 8. 字符串不能用指针进行引用

9. char c[]=\是一个合法的为字符串数组赋值的语句。

10. char *p=\的含义是定义字符型指针变量p,p的值是字符串\。

2分

2分

2分

2分

2分

2分

2分

2分

2分

二、选择题 (24分)

1.下面程序段的运行结果是( )。 [B] char str[]=\printf(\

A. 67 B. 0 C. 字符′C′的地址 D. 字符′C′ 2.阅读下列程序,则执行后的结果为( )。 [B] #include \ int main()

{ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56}; printf(\ }

A. 62,5 B. 3e,6 C. 56,5 D. 3E,6 3.下面程序段的运行结果是( )。 [C] char *s=\s+=2;

printf(\

A. cde B. 字符′c′ C. 字符′c′的地址 D. 无确定的输出结果 4.若有变量定义 int x=3,*p;,则下面语句不正确的是( )。 [A] A. p=&(x+1); B. p=&x; C. p=&x+1; D. p=&x, p++;

5.指针变量p1、p2类型相同,要使p2、p1指向同一变量,哪一个语句是正确的()。A] A. p2=*&p1; B. p2=**p1; C. p2=&p1; D. p2=*p1 6.若有语句:char *line[5];,以下叙述中正确的是( )。 [A]

A. 定义line是一个数组,每个数组元素是一个基类型为char为指针变量。 B. 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组。 C. 定义line是一个指针数组,语句中的*号称为间址运算符。 D. 定义line是一个指向字符型函数的指针。

7.若有数组定义为int a[10],i; 与a[i]=100 等价的赋值表达式是 [B] A. a+i=100 B. *(a+i)=100 C. (a+i)=100 D. &a[i]=100 8.定义函数int *max()的正确含义是()。 [B]

2分

2分

2分

2分

2分

2分

2分

2分

A. 返回整型值的函数 B. 返回指向整型变量的指针 C. 返回指向函数max()的指针 D. 上面的叙述都不正确

9.若有定义“int (*ptr)(float);”,其正确的含义是()。 [C] A. ptr是指向一维数组的指针变量 B. ptr是指向int型数据的指针变量

C. ptr是指向函数的指针变量,该函数有一个float型参数,返回值是整型 D. ptr是一个函数名,该函数的返回值是指向int型数据的指针

10.若有定义char a[15]=\则strlen(a)返回值和sizeof(a)的返回值分2分

别为()。 [C] 2分

A. 11,15 B. 17,11 C. 10,15 D. 18,11

11.若有定义char a[15]=\则strlen(a+5)返回至为()。 [D] A. 8 B. 10 C. 17 D. 5

12.char s[]=\则数组s的字符串长度为()。 [C] 2分

A. 12 B. 10 C. 11 D. 18

三、程序填空题 (26分)

1. 功能:建立一个如下的二维数组,并按以下格式输出。 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 10分

#include int main() {

int a[5][5]={0},*p[5],i,j; for(i=0;i<5;i++) p[i]=__(1)__; for(i=0;i<5;i++) {

*( __(2)__ +i)=1;

*(p[i]+5-( __(3)__ ))=1; }

for(i=0;i<5;i++) {

for(j=0;j<5;j++) printf(\ putchar('\\n'); }

}

(1)答案 4分

&a[i][0] (2)答案 3分

p[i]

2分

(3)答案 3分

i+1

8分

2. 输入一个星期几的数值(0-6),输出该星期几的英文名 #include void week(int no) { char

*w[]={\ if(no>=0&&no<=6) puts(__(1)__); else printf(\星期数值输入错误\\n\}

void main() {

int w;

scanf(\ __(2)__;

}

(1)答案 4分 w[no] (2)答案 4分

week(w)

3. 功能:输入3个字符串,输出最大字符串。#include #include void main() {

char s[80],__(1)__; int i;

scanf(\

strcpy(max,__(2)__); for(i=1;i<=2;i++){ scanf(\

if(strcmp(__(3)__,s)<0) strcpy(max,s); }

printf(\}

(1)答案 3分

max[80] (2)答案 3分

s (3)答案 2分

max

8分

四、程序设计题 (30分)

1. 输入10个数,按绝对值从小到大排序后输出,要求定义一个函数sort,完成绝对值从小到大排序。(用指针完成) 题目描述

输入10个数,按绝对值从小到大排序后输出,要求定义一个函数sort,完成绝对值从小到大排序。(用指针完成) 输入描述

输入10个数 输出描述

按绝对值从小到大排序 样例输入

3 5 7 2 1 -15 3 8 9 4 样例输出

1 2 3 3 4 5 7 8 9 -15

10分

#include #include void sort ( float *p, int n ) {

int i,j; float *q, temp; //选择法排序

for (i=0;i

for(j=i+1;j

if(fabs(*(p+j))

*(p+i)=temp; } }

void main() { }

float a[10],*p; int i;

for(p=a,i=0;i<10;i++) scanf(\p=a; sort( p, 10 );

for(i=0;i<10;i++,p++) printf(\

2. 输入n和x, n和x分别表示对数组前n个元素赋初值为x,要求定义一个函数value,完成对一维整形数组的n个元素进行赋值,具体赋值为x. 题目描述 输入n和x, n和x分别表示对数组前n个元素赋初值为x,要求定义一个函数value,完成对一维整形数组的n个元素进行赋值,具体赋值为x.(要求用指针实现) 输入描述

输入n和x 输出描述

输出一维数组的前n个元素的值 样例输入

5 1 样例输出

1 1 1 1 1

10分

#include

void value ( int *p, int n, int x ) { }

void main() { int a[100], n, x, i; scanf( \ }

value ( a, n, x ); for ( i=0; i

printf( \int i;

for ( i=0; i

*( p+i )=x;

3. 字符串连接 题目描述

分别输入两个字符串保存在两个字符数组中,将其中较小的一个字符串连接到较大的字符串后面,然后输出连接后的字符串。 输入描述

输入两个字符串 输出描述

输出连接后的字符串,其中较小的连接在较大的字符串后面。 样例输入 apple

orange 样例输出

orangeapple

10分

#include

#include void main()

{ char str1[80], str2[80]; gets(str1); gets(str2);

if(strcmp(str1, str2)>0){ strcat(str1,str2); puts(str1); } else } }

{

strcat(str2,str1); puts(str2);


C语言程序设计题目及解答-12.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:营销会议主持词结束语

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219